J'essaie d'utiliser des expressions lambda manipulées dans SML NJ et, pour une raison quelconque, cela génère une erreur. le code dans mon "program.sml":Erreur de syntaxe dans l'application de fonction partielle
fun add x y = x + y; // (x. y. A x y)
fun plus = add 1; // (x. y. A x y) 1 --> (y. A 1 y) -(e.g.)plus 4=5
erreur après commande « utilisation "program.sml" dans le terminal ubuntu: ligne
program.sml:2.5-2.9 Error: can't find function arguments in clause
uncaught exception Error
raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:292.17-292.20
Il est certainement le "plus", car sinon il y a pas d'erreur. et j'ai essayé 'fun plus = (ajouter 1);' (parenthèses), ce qui soulève la même erreur. Peut-être qu'il me manque un paquet, ou peu importe. Quelqu'un peut-il expliquer cela?
Une fonction qui ajoute un à son entrée peut être appelée 'incr' ou' succ'. –