我正在尋找一種方法來做米蘭達while-loops或for-loops。米蘭達while-和for-loops
我試圖做類似
while(blablanotfinished)
{
if(a=true)blabla
else blabla
}
我正在尋找一種方法來做米蘭達while-loops或for-loops。米蘭達while-和for-loops
我試圖做類似
while(blablanotfinished)
{
if(a=true)blabla
else blabla
}
米蘭達沒有while或for循環(無論如何都不會有多大意義)。在大多數情況下,您可以改用高階函數。如果沒有更高階的函數來滿足你的需要,你可以使用遞歸。
例如,如果您有以下while循環的命令式語言:
f(start) {
x = start
while(!finished(x)) {
x = next(x)
}
return x
}
你會遞歸地表達它米蘭達這樣的:
f x = if finished x then x else f (next x)
在米蘭達(和一般的,在純函數式編程語言)使用循環結構像的同時,FOR等氣餒。你需要通過遞歸進行迭代。
與許多其他功能語言一樣,Miranda沒有for-while循環。相反,你使用遞歸編寫循環,list comprehensions或higher-order functions。