Скрывает ли SML элементы списка?

Я тестировал следующий фрагмент кода:

datatype my_int_list = Empty 
                     | Cons of int * my_int_list

fun append (xs, ys) =
    case xs of
        Empty => ys 
      | Cons(x, xs') => Cons(x, append(xs', ys))

Если я создаю список из одного элемента или из двух элементов, все нормально. Если я создаю список из трех элементов, он вводит символ #.

- Cons(1, Empty);
val it = Cons (1,Empty) : my_int_list
- Cons(1, Cons(2, Empty));
val it = Cons (1,Cons (2,Empty)) : my_int_list
- Cons(1, Cons(2, Cons(3, Empty)));
val it = Cons (1,Cons (2,Cons #)) : my_int_list

И вот что происходит, когда я пытаюсь использовать функцию append:

- val l1 = Cons(1, Cons(2, Cons(3, Empty)));
val l1 = Cons (1,Cons (2,Cons #)) : my_int_list
- val l2 = Cons(4, Cons(5, Cons(6, Empty)));
val l2 = Cons (4,Cons (5,Cons #)) : my_int_list
- append(l1, l2);
val it = Cons (1,Cons (2,Cons #)) : my_int_list

Это просто SML способ сказать, что элементов больше, но их не надо печатать? Если да, могу ли я попросить его распечатать все? Если нет, то я сделал что-то не так?


person plx    schedule 13.06.2018    source источник


Ответы (1)


Это просто способ SML сказать, что есть больше элементов, но он не собирается их печатать?

Да!

Если да, могу ли я попросить его распечатать все?

Да!

Если нет, то я сделал что-то не так?

No!

person Simon Shine    schedule 14.06.2018