我似乎無法找到這個看似簡單的SML問題的簡單答案。我的代碼:函數中的ML變量
fun inde(x, y, L) = if null L then nil else
if x=hd(L) then y+1::inde(x,y+1,tl L) else
inde(x,y+1,tl L);
我想Y中的功能之外的變量,因此這將是不知疲倦(X,L),但具有在y仍算正常。當我聲明它在函數之外(到0)時,遞歸調用函數時,它將重置爲0.
如果要運行此當前函數,它將生成一個x的位置在列表(L)。 因此inde(1,0,[1,2,2,1,1])會產生[1,4,5]
標準ML中的變量是實際的數學變量,其含義由替換給出,而不是由一系列重新分配給出。 [來源](http://existentialtype.wordpress.com/2012/02/01/words-matter/)。這樣做的直接後果就是你無法修改變量在給定上下文中代表的值。 – pyon 2014-10-27 07:05:28