Capabilities: The Transformation of Thought

Lispex is not just a single language; it is a gateway to all languages. Through LENA code, your ideas can transform into over 30 different forms, such as JavaScript, Python, and Java. Witness how the archetype of thought manifests in diverse forms.

Lispex is an input‑only surface that transforms to many targets. Side‑effects depend on the runtime you target. This page outlines how to think about capabilities (IO/FS/Net) today.

Concept

  • Capabilities name effect categories: IO (console/stdio), FS (files/paths), Net (HTTP/sockets).
  • Lispex itself does not ship a runtime. Capability usage ultimately maps to target‑language APIs.
  • Guides avoid module headers/imports to keep examples portable; use the target’s standard library after transformation.

What’s stable now

  • Pure, side‑effect‑free code transforms consistently across targets.
  • Printing results: some targets auto‑print the last expression, others require explicit print/log on the target side.

Constraints & limitations (current)

  • No cross‑target “standard” IO/FS/Net layer is guaranteed yet.
  • Path/encoding/timezone/permissions differ by OS/target; prefer UTF‑8, absolute paths only when necessary, and handle errors.
  • Network calls (HTTP, sockets) require the target’s libraries and policies (CORS, TLS, proxies).

Safety & permissions

  • Be explicit about where data comes from and where it goes (input validation, output encoding).
  • Respect sandboxing (browsers), UAC/ACL (desktop), and runtime flags (Node/deno/python).

Practical approach today

  1. Transform Lispex to your target.
  2. In the target, wire IO/FS/Net using its standard libraries or frameworks.
  3. Keep Lispex code pure where possible; pass values into small effectful wrappers on the target side.

Open LENA code: www.lenacode.com