Ridgun 1.0.9 para Linux, macOS y Windows
Código que se alinea.
Programas que se reparten entre núcleos.
Ridgun es un lenguaje tabular, funcional y de sistemas. Las firmas y las cláusulas se ordenan en columnas que se leen de un vistazo, el paralelismo forma parte de la sintaxis y la memoria se libera de forma determinista, sin recolector de basura.
type Shape = Circle Int | Rect Int Int
fn :: area Shape => Int
area (Circle r) = 3 * r * r
area (Rect w h) = w * h
fn :: report [Shape] => Int Int
report shapes = (total, biggest)
|| ||map area shapes -> areas
|| fold (acc a => acc + a) 0 areas -> total
|| fold bigger 0 areas -> biggest
fn :: bigger Int Int => Int
bigger a b =
| a > b = a
| otherwise = b
fn :: describe (Int Int) => String
describe (total, biggest) = "total {total}, largest {biggest}"
fn :: main => ()
main =
shapes = [Circle 4, Rect 3 5, Rect 20 30]
echo (describe (report shapes))
ridgunc run shapes.rg
total 663, largest 600
Por qué Ridgun
Comparado con otros lenguajesTabular por diseño
Cada función es una tabla: la firma arriba, una cláusula por fila y los argumentos en columnas.
stable formatmantiene alineado cada archivo, así que las revisiones tratan de la lógica y no de la disposición.El paralelismo es sintaxis
||forman un grafo de dependencias que el compilador reparte entre los núcleos.||mapy||filterreparten el trabajo entre hilos, y los agentes con canales cubren los servicios de larga duración.Sin recolector de basura
El compilador libera cada valor justo después de su último uso. Las estructuras compartidas cuentan referencias, y las regiones liberan una zona entera de una vez. Los programas nunca se paran a recoger basura.
Binarios nativos y estáticos
ridgunc, el compilador, genera por sí solo ejecutables ELF64 enlazados estáticamente para x86-64 y ARM64. Sin toolchain de C ni runtime que instalar en el servidor. Está escrito en Ridgun, comostable,omni, las librerías y el sitio que estás leyendo.Una sola herramienta para el proyecto
stablecrea, comprueba, prueba, formatea y compila proyectos a partir de unbuild.rgescrito en el propio Ridgun. Sin YAML ni TOML.Un comando para librerías y herramientas
omni, el gestor de paquetes, instala desde este sitio y antes comprueba cada firma:omni install jsonañade una librería a tu proyecto,omni install -g unix-toolspone los programas de un paquete en tuPATH.
Noticias
Todas las entradasAún no hay noticias. Aquí aparecerán las versiones y los anuncios.
Pregunta, comparte, participa
¿Atascado en un error de tipos? ¿Has hecho algo en Ridgun? ¿Tienes una idea para el lenguaje? El foro es donde se encuentran el equipo y la comunidad.
Visita el foro