5
我與core.logic試驗,並希望實現自己的自定義數據類型來參加邏輯表達式:擴展core.logic到自定義類型
(deftype Expression [node vars]
....)
基本上,這代表了一個數學表達式樹中的節點,包含一個節點樹和一組使用的未綁定變量。 node
是一個常數,一個符號或一個(Operator Expression Expression....)
樹節點。我希望能夠使用core.logic來操作數學表達式,並匹配這些表達式的子樹。
如果可能,我該如何做到這一點?
我從core.logic源代碼,看到有一個number of protocols,看上去就像他們將是很好的延伸(例如IUnifyTerms
,IReifyTerms
等),但它並不完全清楚如何將這些都意味着要使用,哪些我真的需要延長。
您可能會感興趣Term Rewrite Systems。我發現,看看你正在嘗試的現有實現已經成果豐碩(Maude,Stratego/XT很好)。另外,請注意您可能遇到關聯交換匹配問題;一個計算上具有挑戰性的子問題,現有的core.logic機器不會特別好支持(我上次無論如何檢查)。 – MRocklin 2013-03-24 03:36:43