Il présente les caractéristiques suivantes :
- Strictement aucun effet secondaire pour vous aider à écrire du code fonctionnel
- La possibilité de localiser les effets des fichiers Crumb importés.
- Le typage dynamique et le "garbage collection".
- 0 mot-clé, tout est une fonction.
Syntaxe
Crumb utilise une définition syntaxique particulièrement laconique. La syntaxe entière peut être décrite en 6 lignes d'EBNF. De plus, il n'y a pas de mots réservés, et seulement 7 symboles réservés.
EBNF
Code : | Sélectionner tout |
1 2 3 4 5 6 7 | program = start, statement, end; statement = {return | assignment | value}; return = "<-", value; assignment = identifier, "=", value; value = application | function | int | float | string | identifier; application = "(", {value}, ")"; function = "{", [{identifier}, "->"], statement, "}"; |
Tokens
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | "=" "(" ")" "{" "}" "->" "<-" identifier int float string start end |
Spécificités
Les chaînes de caractères sont des caractères entourés de guillemets, par exemple :
Code : | Sélectionner tout |
1 2 3 | "hello world" "this is\nsplit between new lines" "\e[31mthis text is in red\e[0m" |
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | "\a" "\b" "\f" "\n" "\r" "\t" "\v" "\e" "\\" "\"" |
Code : | Sélectionner tout |
1 2 3 | 1234 -14 345 |
Code : | Sélectionner tout |
1 2 3 | 13.45 -2.3 745.0 |
Code : | Sélectionner tout |
1 2 3 4 | hello x₂ symbol1 + |
Code : | Sélectionner tout |
1 2 | // this is a program that prints hi (print "hi") // this prints hi |
Vous pourrez voir plus d'information dans la source.
Source : GitHub
Et vous ?
Pensez-vous que ce langage de programmation soit crédible ou pertinent ?
Pensez-vous que ce langage de programmation soit utile à quelque chose ? Si oui à quoi ?
Que pensez-vous de ce langage de programmation ?
Selon vous, quelle est la différence avec le langage de programmation Lisp ?
Voir aussi :
La version 3.6b d'ARM uLisp, une variante du langage de programmation Lisp conçue pour microcontrôleurs, est disponible. Elle prend en charge la sauvegarde d'images sur toutes les cartes ATSAMD21
Un développeur publie un langage de programmation qui peut être traduit automatiquement en C, C++, C#, Java, JavaScript, etc., avec une traduction rapide et sans machine virtuelle
Le langage fonctionnel et impératif Janet, qui reprend des fonctionnalités de Lua et Clojure, s'apparente à une version légère de Lisp implémentée en C