我試圖執行一個計劃般map
功能,即實現地圖功能
map([X1, X2, ..], Fun) ->[Fun(X1), Fun(X2), ...]
我寫了這個代碼:
map([], Fun, []).
map([H|T], Fun, [HO|TO]) :- call(Fun, H, HO), map(T,F,TO).
現在,看着這樣運行:
?- map([1,2,3], plus(1), X).
X = [2, 3, 4] ;
X = [2, 3, 4] ;
X = [2, 3, 4] ;
X = [2, 3, 4] ;
ERROR: map/3: Arguments are not sufficiently instantiated
Exception: (9) map([3], _G380, _G351) ?
- 如何在第一次後停止提供?
- 如何跟蹤它?如果我使用
trace
它會在第一個解決方案後停止執行。
'SWI-Prolog的版本5.10.4爲i386' – Aslan986
需要注意的是SWI-Prolog有一個'maplist'謂詞,你想要做什麼。 –