2
なぜ次のコードがコンパイルされないのか分かりません。次のコードもコンパイルされませんCLP(FD)とif-then-else構造を混在させるとコンパイルエラーが発生する
:- use_module(library(clpfd)).
test(X, Y) :-
( X = 1
-> Y #= 2
; Y = 3
).
:つまり、なぜ私は理解していない
test(X, Y) :-
( X = 1
-> Y = 2
; Y #= 3
).
それは、put_attr/3: Uninstantiated argument expected, found 2 (1-st argument)
エラーを生成します。 =
はそれがコンパイルになり、単純な統一と#=
を交換するが、これは、この述語ことを考慮すると、コンパイルされないでしょう、なぜ私は表示されません。
test(X, Y) :-
( X = 1
-> Y #= 2*_
; Y = 3
).
コンパイルん!
小さな例: 't(Y): - (Y#= 2; Y = 1)。 – false
@Fatalize、それはコンパイルされないのはどういう意味ですか? – coder
@coder私が 'make 'をすると、私が投稿したエラーが出ます。 @ falseのコメントから判断すると、彼はまったく同じ問題を抱えていると思います。 – Fatalize