Den første offentlige utgivelsen av 0.1.0 av den tverrplattform interaktive kommandolinje og fortolkeren for funksjonell programmering i stil med F# Endo.
Prosjektet er utviklet av forfatteren og hovedutvikleren av terminalemulatoren Contour i C++ (C++23 standard) og distribueres under Apache 2.0-lisensen.
I denne utgaven:
- Språk
- bindinger, som som standard er immutable når du bruker let, og mutable når du bruker let mut;
- typeutgang (Hindley-Milner) — typer blir sjekket, men det er sjelden nødvendig å spesifisere dem eksplisitt;
- mønstermatching med betingelser, destrukturering og «eller»-mønstre;
- diskriminerte foreninger, poster og innebygde typer Option/Result;
- currying-funksjoner, partiell anvendelse og funksjonskomposisjon (>> , <<);
- lambda-uttrykk med plassholder-syntaks (_ + 1, _.field);
- listekonstruksjoner med intervaller og filtre;
- «late» beregninger og sekvenser;
- optimalisering av hale-rekursjon;
- moduler og import.
- Utviklingsverktøy
- Language Server Protocol — en fullt funksjonell LSP-server ($ endo —lsp) med diagnostikk, auto-fullføring, tips ved musepeker, navigering til definisjon, lenkesøk, omdøping, formatering, semantiske tokens, kodehandlinger, innebygde hint, Code Lens og mye mer;
- Debug Adapter Protocol — en fullt funksjonell DAP-server ($ endo —dap) med støtte for stoppesteder, steg-for-steg utførelse, visning av variabler, beregning av uttrykk og disassamblere;
- utvidelse for VS Code — syntaksfremheving, integrasjon med LSP/DAP, kodefragmenter og debugging uten ekstra konfigurasjon.
- Skall
- utførelse av kommandoer som er kompatible med Bash: omdirigering, mønstre, &&/||, oppgavehåndtering;
- strukturerte innebygde kommandoer — ls, ps, jobs, git log, git status, docker ps — returnerer typede oppføringer med data;
- dobbelt rør: |> for funksjonskomposisjon, | for prosesser;
- variabel/kommando/prosessinnsetting, utvidelse av krøllparenteser og tilde;
- over 110 innebygde kommandoer og språkfunksjoner;
- kjøring av .endo-skript med moduloppløsning.
- «AI»-agentmodus
- innebygd «AI»-hjelp som aktiveres med symbolet # i et tomt inntastingsfelt;
- støttede online-leverandører: Claude, OpenAI, OpenAI-kompatible (Ollama, vLLM, LM Studio) og Gemini;
- lokale modellstøtte i GGUF-formatet av prosjektet llama.cpp;
- 18 innebygde verktøy for filbehandling, git, kjøring av kommandoer og tilgang til nettressurser;
- strømming av svar i Markdown-format.
Kilde: linux.org.ru
