Ridgun 1.0.9 för Linux, macOS och Windows
Kod i raka led.
Program som skalar över alla kärnor.
Ridgun är ett tabellbaserat funktionellt språk och systemspråk. Signaturer och klausuler står i kolumner som du kan läsa med en snabb blick, parallellism är en del av syntaxen och minnet frigörs deterministiskt, utan skräpsamlare.
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
Varför Ridgun
Jämfört med andra språkTabellform från grunden
Varje funktion är en tabell: signaturen överst, en klausul per rad, argumenten i kolumner.
stable formathåller varje fil justerad, så att granskningar handlar om logik, inte layout.Parallellism är syntax
||rader bildar en beroendegraf som kompilatorn fördelar över kärnorna.||mapoch||filterfördelar arbetet över trådar, och agenter med kanaler tar hand om långlivade tjänster.Ingen skräpsamlare
Kompilatorn frigör ett värde direkt efter dess sista användning. Delade strukturer referensräknas, och regioner frigör en hel arena på en gång. Program stannar aldrig för att samla skräp.
Nativa, statiska binärer
ridgunc, kompilatorn, skriver själv statiskt länkade ELF64-program för x86-64 och ARM64. Ingen C-verktygskedja, ingen runtime att installera på servern. Den är skriven i Ridgun, liksomstable,omni, biblioteken och webbplatsen du läser.Ett verktyg för hela projektet
stableskapar, kontrollerar, testar, formaterar och bygger projekt utifrån enbuild.rgskriven i Ridgun självt. Ingen YAML, ingen TOML.Ett kommando för bibliotek och verktyg
omni, pakethanteraren, installerar från den här webbplatsen och kontrollerar först varje signatur:omni install jsonlägger till ett bibliotek i ditt projekt,omni install -g unix-toolslägger ett pakets program i dinPATH.
Nyheter
Alla inläggInga nyheter än. Versioner och meddelanden dyker upp här.
Fråga, dela, var med
Fastnat på ett typfel? Byggt något i Ridgun? Har du en idé till språket? På forumet möts teamet och gemenskapen.
Besök forumet