0

新しいバージョンの logicblox (4.2.1 より後の任意のバージョン) では、述語 "Person(p), hasPNr(p:n) -> int(n)" がある場合。そして、「+Person(p),+hasPNr[p]=1」というデータを挿入します。次に「-Person(1)」でデータを削除したい場合。「警告: 式 '1' の型は 'int' ですが、型 'Person' の値が必要です。コンパイラは、コードのコンパイルを許可するために述語 'hasPNr' の使用を挿入しました。」という警告メッセージが表示されます。このメッセージなしでデータを削除するにはどうすればよいですか?

4

1 に答える 1

2

次の方法で削除できます。

-Person(n) <- Person:hasPNr@prev(n, 1).

おそらく、挿入の方法も変更する必要があります。"1" を "Person" に変換するコンパイラの機能は、"refmode 変換" と呼ばれます。その機能は、しばしば混乱を引き起こすため、実際には削除されています(すでにあなたのケースにあるように:))したがって、refmode変換なしで挿入するには:

+Person(n), +Person:hasPnr(n, 1).
于 2015-07-20T20:12:40.340 に答える