私はSchemeのような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
は、最初の解決策の後で実行を停止します。