Ce qui suit est une façon de déclarer une fonction je suppose (corrigez-moi) & Je veux faire quelque chose de similaire en utilisant le même style mais ça ne fonctionne pas, pourquoi?Déclaration de fonction en SML?
fun length nil = 0
| length (_::l') = 1 + (length l')
Je veux le faire sans utiliser la syntaxe "case expression of". i.e. si la fonction x obtenir un numéro 3 puis retourner 0 sinon s'il est 4 alors 1
fun x 3 = 0
| x (4) = 1
Here's the error
stdIn:58.5-59.12 Warning: match nonexhaustive
3 => ...
4 => ...
Q2) De plus, où est le corps de la fonction démarrage? il semble que nil est un paramètre, mais nous avons | donc je suis confus!
Quel est le problème avec la définition que vous avez publié? (Lisez à propos de la correspondance de modèles dans n'importe quel livre que vous utilisez.) – molbdnilo
C'est juste un exemple simple pour la récursivité. cette fonction a le type 'a list -> int. C'est tout ce qui est écrit à ce sujet. –
Je veux dire votre fonction. Vous dites "ça ne marche pas" - qu'est-ce qui ne va pas? – molbdnilo