1

[]::[]SML/NJ でと[]::[]::[]が概念的にどのように解釈されるかをお聞きしたいと思います。

私の考え :

[]::[]エラーが発生するか、空のリストが生成されると思っていましたが、実際にはval it = [[]] : 'a list list.

が生成されることを知った後、それが生成される[]::[][[]] : 'a list list思ったが、実際には生成される[]::[]::[][[[]]] : 'a list list list[[],[]] : 'a list list

4

1 に答える 1

7

::右結合: a::b::c::[]a、b、c は同じ型の要素でなければならず、

a::b::c::[] = a::(b::(c::[]))
            = a::(b::[c])
            = a::[b,c]
            = [a,b,c]

これは、a、b、c が [] であっても当てはまります。

[]::[]::[]::[] = [[],[],[]]
于 2015-10-13T19:25:04.477 に答える