Comment imprimer variable en sml?
Je suis nouveau sur SML et le débogage j'ai l'habitude d'imprimer la variable pour voir si elle correspond à ce que j'ai prévu qu'il devrait être.
Je voudrais imprimer une variable dans une fonction
ce que j'ai, c'est ceci :
en-tête de fonction..
let val prod
val prod = c + x * y;
in
(print "product "; prod mod 10):: (multiplyAux (prod div 10) xs y)
end;
Maintenant l'impression de la chaîne du produit, mais je voudrais être en mesure d'imprimer la variable prod lui-même.
Vous devez vous connecter pour publier un commentaire.
La seule chose qui
print
pouvez imprimer est les chaînes. Afin d'imprimer une valeur numérique, il doit d'abord être converti en chaîne de caractères. Par exemple:Noter que
Int.toString
utilise le curry de syntaxe de la fonction (i.e. il n'a pas besoin d'un n-uplet pour argument) de sorte que la parenthèse autour de43 mod 5
sont de faire de la valeur clairement de ne pas faire deInt.toString
travail.Int.toString
est un curry de fonction"; ce terme ne signifie pas ce que vous en pensez. (Voir en.wikipedia.org/wiki/Currying.) La raison pour laquelle les parenthèses sont nécessaires, c'est que le préfixe de la fonction de demande a une priorité plus élevée que infix.Int.toString
n'est pas au curry, parce que ça prend un seul argument, de toute façon (tous les SML prise de fonctions à un seul argument).Int.toString
conceptuellement besoin d'un seul argument pour faire son travail, par opposition àop+
, par exemple, qui a besoin de deux arguments sur le plan conceptuel, même si elle est définie à prendre un seul (un tuple). C'est pourquoi je pense que l'on peut parler d'un curry de version deop+
, mais pas sur un curry de version deInt.toString
.op+
, mais pas sur un curry de version deInt.toString
".)foo (bar, baz)
est équivalent àfoo (((bar, baz)))
ou àfoo { 1: bar, 2: baz }
.foo bar baz
n'. Ce terme décrit les que syntaxe de mieux?foo (bar, baz)
n'est pas au curry: il prend plusieurs arguments, effectivement, aussi, mais en prenant un n-uplet.Int.toString
n'est pas au curry, que ce soit: il suffit d'un seul argument, et il aime!