Loment
ES

Aprender

Aprender Loment

Hay tres sitios donde mirar, y el más potente es un conjunto de herramientas que se explica a sí mismo: puede imprimir todo el lenguaje, listar cada función incorporada que existe y decirte qué significa cualquier código de error que te dé. Esta página da el orden que tiene sentido y pone lo que le falta a cada paso junto al paso.

Lo que falta es enseñanza, no material. El manual es una referencia y no un tutorial, y está escrito en chino; los registros de diseño también. Cuando un recurso de los de abajo está incompleto, o nunca se ha usado de la forma en que estás a punto de usarlo, esta página lo dice en vez de dejar que lo descubras.

Ejecuta algo antes de leer nada

Aquí nada hace falta entenderlo antes. Instala el paquete desde la última versión — en Windows toma el zip, no el instalador — y el comando que te escribe un punto de partida es en sí mismo un programa Loment:

$ loment new hello        # writes hello.lomt; it will not overwrite one$ loment run hello.lomt   # compile, link, run — the exit code is the program's

La vía de compilar y ejecutar no necesita Python, ni clang, ni WSL. Qué produce y por qué está en Primeros pasos; las dos clases de programa que puede producir están en la página principal.

El lenguaje, de una sola sentada

Todo el lenguaje está disponible como un único archivo comentado, y el comando que lo imprime viene con el conjunto de herramientas en lugar de vivir en este sitio web. Léelo de arriba abajo una vez y habrás visto todas las construcciones que hay — el lenguaje se construyó para resistir eso, y no para aprenderse función a función.

También hay una guía escrita, y es autocontenida a propósito: la copia que va dentro del paquete instalado es el mismo archivo que el del repositorio, así que puede leerse sin conexión, y el criterio del proyecto es que los dos sigan siendo idénticos.

$ loment example tour    # the language as one commented source file$ loment skill --print   # the written guide, printed in full

Dos cosas sobre ese primer comando, antes de ejecutarlo. Los comentarios del tour están en chino, y en la versión publicada actualmente ese archivo en particular no enlaza — es un defecto conocido del enlazador autoalojado, y los cuatro programas de la página de ejemplos son los que están verificados para ejecutarse. La guía que imprime el segundo comando está en inglés.

Consulta las cosas sin salir de la terminal

Esta es la parte genuinamente poco habitual, y vale la pena probarla aunque no tengas ninguna intención de usar el lenguaje. El conjunto de herramientas es la referencia. Todos estos leen del paquete instalado, así que funcionan sin conexión, y responden sobre la versión que realmente tienes en lugar de sobre lo que dijera el sitio web la última vez.

$ loment cheat            # the whole language on one page$ loment syntax           # the syntax on one page$ loment builtins         # every built-in function there is$ loment keywords         # the reserved words$ loment explain E4       # what a diagnostic means, and what to change

El último es el que hay que recordar. Un código de error por sí solo es un número; el conjunto de herramientas guarda la frase que lo acompaña, y te dirá a qué se estaba oponiendo el compilador y hacia dónde moverse. loment help sin argumento lista el resto, y la wiki tiene la versión larga.

Consulta las cosas por escrito

El manual

Generado a partir del compilador y los ejemplos incluidos, y distribuido en el repositorio: las especificaciones, y una referencia de API para cada módulo de ejemplo. Está escrito en chino, y es una referencia y no un tutorial — dice qué es algo, no qué hacer con ello.

La wiki

El mismo material que este sitio, organizado como una enciclopedia del lenguaje: sintaxis, tipos, la tabla de funciones incorporadas, los niveles de recuperación, los códigos de error y lo que es deliberadamente distinto de otros lenguajes. En inglés, y el lugar al que ir cuando quieres una página sobre una sola cosa.

Los registros de diseño

Cada decisión de este lenguaje tiene detrás un documento numerado, que defiende el caso y nombra lo que costó. Están escritos en chino, y no están escritos para quien aprende — pero cuando una página de aquí o de la wiki dice «el diseño lo dice», es aquí donde está eso.

Aprende leyendo código

El repositorio lleva un corpus de programas de ejemplo, y el conjunto de herramientas puede imprimir cualquiera de ellos sin que abras un navegador:

$ loment examples        # what is bundled$ loment example demo    # print one of them in full

Para un comienzo más suave, los cuatro programas de este sitio son cortos y cada uno muestra la salida que produjo realmente. El corpus completo está en el repositorio bajo loment/examples/, y no todos los archivos que contiene enlazan hoy.

Deja que el editor te ayude

La extensión de VS Code está en el marketplace, como hooyan2022.loment — busca Loment en el panel de extensiones. Lo que hace el servidor de lenguaje es real: diagnósticos del comprobador mientras escribes, autocompletado, ir a la definición y formato — mediante el formateador aparte, no por el propio servidor. También hay archivos para Vim, y el servidor habla LSP por stdio, así que cualquier editor con un cliente puede conectarse.

La extensión es un cliente, no un compilador. No lleva ningún conjunto de herramientas: el servidor de lenguaje, la compilación y el depurador ejecutan programas desde una copia de trabajo de Loment, que se localiza subiendo por las carpetas a partir de la que tienes abierta. Instálala y abre un archivo sin ninguna copia cerca, y obtienes resaltado y nada más — algo que conviene saber antes de concluir que la extensión está rota.

Tres huecos que conviene conocer antes de fiarse de él. No hay índice de símbolos entre archivos, así que el autocompletado y el ir a la definición solo ven el documento actual. El servidor no declara una capacidad de formato; el formato es un programa aparte. Y las propias notas del proyecto dicen que el servidor nunca se ha manejado a mano dentro de un editor real — sus pruebas llaman directamente al mismo gestor de peticiones. El depurador tiene sus propios huecos: sin puntos de interrupción condicionales, sin evaluación de expresiones, y las variables locales son registros y no nombres. La página del editor en la wiki los lista en su totalidad.