1
我有SML中的列表,它包含來自數據類型"expr"
(列表「b」)的成員。 我也有功能"What"
,它的參數只是從日常類型"expr"
。 現在我在接下來的代碼問題:發生SML - 列表和遞歸
datatype expr = K of string| Number2 of expr * (expr list);
datatype number = Number1 of string | Number3 of int;
What....
| What (Number2 (t,[]))= Number3(0)::What(t)
| What (Number2 (y,(a::b)) = append (What(a), What(b));
的錯誤,因爲b是expr
列表,功能What
只拿到了「expr
」,而不是「expr list
」。我想要做的就是檢查所有成員是"b"
,並創建一個新列表 - 哪個成員來自數據類型"number"
。 我試圖使用map function
,但它沒有幫助(請參閱此處的標記:SML - unbound variable or constructor)。
有什麼想法?還有另一種方法可以做到,而不使用地圖?我堆上了一天..
你必須解釋一下你所說的「沒有幫助」,給你的其他問題得到了解決是什麼意思。你所期望的正確輸出並不完全清楚。給出「What」函數的完整定義以及輸入和期望輸出的示例。 –
另請注意,不是使用'append'函數,而是使用內建函數'@'。那將是'lst1 @ lst2'。 –
@ Jesper.Reenberg:非常感謝!運營商@解決問題! –