Saltar para o conteúdo
Ridgun
Português

Ridgun 1.0.9 para Linux, macOS e Windows

Código que se alinha.
Programas que escalam.

O Ridgun é uma linguagem tabular, funcional e de sistemas. As assinaturas e as cláusulas alinham-se em colunas que se leem num relance, o paralelismo faz parte da sintaxe e a memória é libertada de forma determinística, sem coletor de lixo.

shapes.rg
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

O livro, no seu idioma

Quarenta e três capítulos, desde a sua primeira função até aos agentes, tensores, regiões de memória e bibliotecas padrão. Escrito pela equipa em oito idiomas.

Ainda não há notícias. As versões e os anúncios aparecerão aqui.

Pergunte, partilhe, participe

Preso num erro de tipos? Fez algo em Ridgun? Tem uma ideia para a linguagem? O fórum é onde a equipa e a comunidade se encontram.

Visitar o fórum

Quando quiseres.

Instala o Ridgun e escreve hoje o teu primeiro programa.

Ridgun, a mascote: um lince com chifres de carneiro, desenhado como uma gravura a tinta.