2
我想用連字符運算符將邊緣表示爲對,即From-To
。 我想表示節點也是成對的(表示FCA概念),即Extent-Intent
。 所以我得到類似如下:使用運算符連字符嵌套對
([1]-[a])-([2,3]-[b])
括號確保表達正確消除歧義:單外連字符表示的邊緣算,兩個內連字符表示節點操作。
這裏是我的問題:
?- X = (a-b)-(c-d), X = Y1-Y2-Y3.
X = a-b- (c-d),
Y1 = a,
Y2 = b,
Y3 = c-d
我期待這不是失敗...... 我的問題:
- 爲什麼在
X
的(顯示)結合去除括號? - 爲什麼第一個連字符的解釋方式與第三個不同?
可能相關的,連字符運算符優先級規則:
?- current_op(P,T,-).
P = 200,
T = fy ;
P = 500,
T = yfx.
(這是SWI-Prolog的開發分支,但我懷疑這會是SWI專用)
爲了完整起見,這樣一個減號對的正式名稱是'pair'。您可以從'keysort([a],_)'的錯誤消息中看到 – false 2017-02-21 20:52:19