Synsema docsENES

Recetario

Patrones copy-paste. Cada uno es completo y está doctested en su página — empezá acá, después seguí el link.

Validar entrada, conservar resultados parciales

Validá un payload a un valor tipado; sumá los válidos y saltá los malos con try/recover:

cookbook.syn
-- Doc cookbook: validate a payload into a typed value, and sum valid ones with
-- partial results (try/recover skips the bad ones). A copy-paste-ready pattern.
intent: "doc cookbook: validate + partial results"

type Order
    id: number
    total: number

task validate_order(payload)
    when not contains(payload, "total")
        raise("missing total")
    when (payload["total"]) < 0
        raise("total must be >= 0")
    give Order(payload["id"], payload["total"])

task bad_order()
    give validate_order({"id": 2, "total": 0 - 5})

task safe_total(payloads)
    let total be 0
    each p in payloads
        try
            let o be validate_order(p)
            set total to total + (total of o)
        recover err
            log "skipped: " + err          -- partial results: skip the invalid ones
    give total

print("safe_total of mixed orders → " + text(safe_total([{"id": 1, "total": 10}, {"id": 2, "total": 0 - 1}, {"id": 3, "total": 5}])))

test "validate accepts good input and rejects bad"
    assert_eq(total of validate_order({"id": 1, "total": 100}), 100)
    assert_error(bad_order)

test "partial results: invalid orders are skipped"
    assert_eq(safe_total([{"id": 1, "total": 10}, {"id": 2, "total": 0 - 1}, {"id": 3, "total": 5}]), 15)

Los otros patrones (cada uno mostrado completo en su página)

Cada snippet de esas páginas está doctested contra esta versión, así que un LLM puede copiar uno y funciona.