2017-01-06 3 views
0

Я использую Emacs для написания простой функции в sml около 4 строк, и когда я пытаюсь вызвать функцию/оценивать ее в буфере, она возвращает это с 3 точками на конецУвеличьте глубину печати для списков в SML/NJ

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

Что такое точки в конце? Мой код не печатает никаких точек. Это от Emacs или sml? любые подсказки пожалуйста.

Кроме того, я должен получить длинный список как

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

вот почему многоточие там?

+1

Вы видите длину печати по умолчанию любой версии SML, которую используете (Emacs - это просто редактор - какой компилятор вы используете?). Вы можете изменить длину печати (см. Это: http://stackoverflow.com/a/5079394/4996248, по крайней мере для SML/NJ), или вы можете написать свою собственную функцию печати списков. REPL предназначен только для разработки/отладки. Это обычно дает вам пик значений - не сами полные значения (которые могут быть довольно большими). –

+0

V110.75 в порядке я прочитал выше, но неясно, куда положить команды, такие как Control.Print.printDepth: = 60; где я могу ввести это в emacs? –

+1

Итак, вы используете SML/NJ. Я не использовал Emacs с SML. Если есть интерактивный режим - просто введите его в командной строке. Если вы загружаете файлы - просто поместите это в начало файла. Эксперимент. 'Control.Print.printDepth: = 60;' является просто выражением - оценивать его так же, как вы оценили, какой вызванный 'val it = [1,2,2,2,2,2,2,2,2,2,2 , 2,2, ...] ' –

ответ

1

вот почему там есть точки?

Да.