Se ha lanzado la primera versión pública 0.1.0 de una consola interactiva multiplataforma y un intérprete del lenguaje funcional al estilo de F# Endo.
El proyecto fue creado por el autor y desarrollador principal del emulador de terminal Contour en el lenguaje C++ (estándar C++23) y se distribuye bajo la licencia Apache 2.0.
En esta versión:
- Lenguaje
- de enlace, que, por defecto, son inmutables al usar let, y mutables al usar let mut;
- inferencias de tipos (Hindley-Milner) - los tipos son verificados, pero rara vez es necesario especificarlos explícitamente;
- coincidencias de patrones con condiciones, desestructuración y patrones "o";
- uniones discriminadas, registros y tipos integrados Option/Result;
- funciones curry, aplicación parcial y composición de funciones (>> , <<);
- expresiones lambda con un sintaxis de marcadores de posición (_ + 1, _.field);
- constructos de listas con rangos y filtros;
- cálculos "perezosos" y secuencias;
- optimización de recursión de cola;
- módulos e importación.
- Herramientas de desarrollo
- El Protocolo del Servidor de Lenguaje - un servidor LSP totalmente funcional ($ endo -lsp) con diagnóstico, autocompletado, sugerencias al pasar el cursor, ir a la definición, búsqueda de referencias, renombrar, formatear, tokens semánticos, acciones sobre el código, sugerencias integradas, Code Lens y mucho más;
- El Protocolo del Adaptador de Depuración - un servidor DAP totalmente funcional ($ endo -dap) con soporte para puntos de interrupción, ejecución paso a paso, visualización de variables, evaluación de expresiones y desensamblado;
- una extensión para VS Code - resaltado de sintaxis, integración con LSP/DAP, fragmentos de código y depuración sin configuración adicional.
- Shell
- ejecución de comandos compatible con Bash: redirección, patrones, &&/||, gestión de tareas;
- comandos integrados estructurados - ls, ps, jobs, git log, git status, docker ps - devuelven registros tipados con datos;
- dobles tuberías: |> para composición de funciones, | para procesos;
- sustitución de variables/comandos/procesos, expansión de llaves y tildes;
- más de 110 comandos y funciones integradas del lenguaje;
- ejecución de scripts .endo con resolución de módulos.
- Modo de agente "IA"
- ayuda integrada de "IA" que se activa con el símbolo # en un campo de entrada vacío;
- proveedores en línea compatibles: Claude, OpenAI, OpenAI-compatibles (Ollama, vLLM, LM Studio) y Gemini;
- soporte para modelos locales en formato GGUF del proyecto llama.cpp;
- 18 herramientas integradas para trabajar con archivos, git, ejecutar comandos y acceder a recursos web;
- transmisión de respuestas en formato Markdown.
Fuente: linux.org.ru
