Synsema docsENES

Sintaxis

Synsema se lee como prosa. Los bloques se definen por indentación (4 espacios o 1 tab) — no hay llaves.

syntax.syn
-- Doc example: core syntax. Universal code; English comments.
intent: "doc example: variables, operators, pipe, inline conditional"

task double(n)
    give n * 2

print("5 |> double = " + text(5 |> double))    -- run shows: 5 |> double = 10

test "let / set / arithmetic"
    let x be 10
    set x to x + 5
    assert_eq(x, 15)
    assert_eq(10 % 3, 1)

test "comparison + boolean logic"
    assert(1 < 2 and 2 <= 2)
    assert(true or false)
    assert(not false)

test "pipe is unary application: x |> f == f(x)"
    assert_eq(5 |> double, 10)

test "inline conditional is an expression"
    let label be when 80 >= 50 then "pass" otherwise "fail"
    assert_eq(label, "pass")

Variables

let name be value introduce una variable; set name to value la reasigna.

Operadores

Condicional inline

when cond then a otherwise b es una expresión (usable dentro de let, un map o una llamada), distinta del when en bloque.

Strings

Comentarios

-- un comentario va hasta el fin de línea.