我正在尝试实现类似方案的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
它在第一个解决方案后停止执行。