2017-01-06 4 views
0

J'utilise Emacs pour écrire une fonction simple en sml d'environ 4 lignes et quand j'essaie d'appeler la fonction/l'évaluer dans le buffer, elle renvoie ceci avec 3 points au finAugmenter la profondeur d'impression pour les listes en SML/NJ

val it = [1,2,2,2,2,2,2,2,2,2,2,2,...] : int list 

Quels sont les points à la fin? Mon code n'imprime aucun point. Est-ce que c'est d'Emacs ou de sml? des conseils s'il vous plaît.

Aussi je suis censé obtenir une liste plus comme

[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2] 

est que pourquoi les points là-bas?

+1

Vous voyez la longueur d'impression par défaut de n'importe quelle version de SML que vous utilisez (Emacs est juste un éditeur - quel compilateur utilisez-vous?). Vous pouvez modifier la longueur d'impression (voir: http://stackoverflow.com/a/5079394/4996248, au moins pour SML/NJ) ou vous pouvez écrire votre propre fonction d'impression de liste. Le REPL est juste pour le développement/débogage. Il vous donne généralement un pic sur les valeurs - pas les valeurs complètes elles-mêmes (qui peuvent être assez grandes). –

+0

V110.75 okay j'ai lu ceux ci-dessus mais il n'est pas clair où placer les commandes comme Control.Print.printDepth: = 60; Où est-ce que je saisis ceci dans emacs? –

+1

Vous utilisez donc SML/NJ. Je n'ai pas utilisé Emacs avec SML. S'il y a un mode interactif - il suffit de le taper à l'invite. Si vous chargez des fichiers, placez-les juste en haut du fichier. Expérience. 'Control.Print.printDepth: = 60;' est juste une expression - évaluez-la de la même façon que vous avez évalué tout ce qui a déclenché 'val it = [1,2,2,2,2,2,2,2,2,2 , 2,2, ...] ' –

Répondre

1

est-ce la raison pour laquelle les points là?

Oui.