2016-04-22 6 views
0

Я думал, что я что-то о List.toString где-то читал, но l = [1,2,3]; print (List.toString (l)) я получаю Error: unbound variable or constructor: toString in path List.tostring и просто print l дает мнеКак распечатать список

Error: operator and operand don't agree [tycon mismatch] 
    operator domain: string 
    operand:   int list 
    in expression: 
    print a 

Итак, как я могу преобразовать список в строку и печати это тогда? Это не может быть так сложно, но при поиске, как просто распечатать простой список, я не нашел ответа. В этом случае у меня есть список ints.

Я нашел

fun f (x: int list) = (PolyML.print x;()); 

Here.

Но это дает мне Error: unbound structure: PolyML in path PolyML.print

+2

Посмотрите еще раз на страницу, с которой вы связались, на мой взгляд, это дает достаточное объяснение. PolyML - еще один компилятор SML, вы не можете найти эту структуру, он недоступен в компиляторе SML/NJ: http://www.polyml.org/ –

+0

Итак, как мне распечатать список в SML/NJ? –

+1

Вы не можете http://stackoverflow.com/a/36507598/58808 –

ответ

1

Вот версия SML, которая может быть использована в SML/NJ:

fun printList xs = print(String.concatWith ", " (map Int.toString xs)); 

Функция принимает список Int, преобразует его в список строковых представлений, а затем присоединяется к строкам с помощью «,», и, наконец, печатает результат.