Существует ли какая-либо функция, которая непосредственно печатает список int? Мне нужно распечатать список int для целей отладки. Я знаю, что могу добиться этого, написав свои собственные функции, но я хочу знать, что есть ли другой доступный метод?Печать списка int в sml
ответ
SML/NJ не имеет столько возможностей для симпатичной печати, как некоторые другие реализаций SML, но его PRINTCONTROL signature дает некоторую гибкость.
Например, с настройками по умолчанию у вас есть это:
Но если в REPL вы оцениваете
Control.Print.printLength := 500;
и
Control.Print.linewidth := 80;
затем:
Нет, нет встроенного способа печати чего-либо, кроме строк в SML. Вы либо пишете свои собственные утилиты, либо разбиваете свои функции на более мелкие компоненты, которые могут быть протестированы отдельно в REPL, а затем вы получите автоматическую красивую печать возвращаемого значения.
Если вы хотите создать свои собственные утилиты, в викторине MLton есть страница, описывающая, как построить небольшую библиотеку комбинаторов для печати большинства встроенных типов: http://mlton.org/TypeIndexedValues#_signature.
Для списков, они попадают в точку, где вы можете написать:
val "[3, 1, 4]" =
let open Show in show (list int) end [3, 1, 4]
В Poly/ML имеется специальная функция PolyML.print
, которая будет печатать большинство значений, используя соответствующую функцию для печати. Это не часть стандартного ML, поэтому он находится в структуре PolyML
. Возможно, вам придется использовать ограничение типа, если функция может быть полиморфной.
> fun f (x: int list) = (PolyML.print x;());
val f = fn: int list -> unit
> f [1,2,3,4];
[1, 2, 3, 4]
val it =(): unit
Вы можете получить более полную информацию об отладке в Poly/ML с помощью отладчика. См. http://www.polyml.org/documentation/Tutorials/Debugging.html.
- 1. Large Int Набор в SML
- 2. Удаление списка SML
- 3. Печать списка int в одной строке python3
- 4. SML - Объединить два списка
- 5. SML - Получить индексы списка
- 6. SML: Изменение значения INT в структуре
- 7. Печать только вывода на печать с помощью SML/NJ
- 8. Преобразование строки в int в SML
- 9. В чем разница между int -> int -> int и (int * int) -> int в SML?
- 10. Использование List.nth в списке списка в SML
- 11. Печать значения int Указатель
- 12. Печать int в C
- 13. SML: удалить запись из списка
- 14. SML: получить элемент из списка
- 15. Добавление списков в SML
- 16. SML Fibonacci много. Использование int datatype
- 17. Тип арифметической функции SML выводится на int
- 18. SML/ML Int к преобразованию Струнного
- 19. Извлечение элементов из списка в SML
- 20. Извлечение дубликатов из вложенного списка в SML
- 21. Удалить дубликаты из списка в SML
- 22. Печать списка форматирования списка
- 23. Печать int ** x в GDB
- 24. Печать переменной int в C
- 25. Печать максимальных значений INT
- 26. Печать массива int
- 27. Печать связанного списка в Java
- 28. Печать Int и String
- 29. Печать списка в списке
- 30. Печать списка в Haskell