我在尋找函數for : int * int * (int -> unit) -> unit
。我需要這個打印一個數字列表。更具體地說,我有一個功能f num = print ((Int.toString num)^"\n")
。到目前爲止,我有這個:單元類型的整數列表
fun for(from,to,f)=
if from=to then [f(to)]
else f(from)::for(from+1,to,f)
這給我一個unit list
返回類型。如何在不追加早期結果的情況下調用函數?
使用帶聚合器的內部函數? – Ashalynd
我試過了。您仍然將f應用於每個數字,並且您仍然追加到較早的結果,從而給出單位列表類型。或者,你的意思是別的嗎? – Krishna
我的意思是這樣的:(我不是sml中的pro,但它在所有func langs中的工作方式相同):'fun forinner(from,to,f,acc)= 如果from =然後acc else forinner (from + 1,to,f,f(from):: acc)' – Ashalynd