捆紮-的結策略可以用於構造圖等,使用簡單的一柄圖爲例:是否有可能在搭配結戰略構建的圖上進行搜索?
data Node = Node Node Node
-- a - b
-- | |
-- c - d
square = a where
a = Node b c
b = Node a d
c = Node a d
d = Node b c
這種策略是相當完美的,但我無法找到一種方法實際使用它沒有Int標籤。例如,我如何編寫一個函數來計算square
值上的節點數量?
countNodes :: Node -> Int
countNodes = ... ??? ...
main = print $ countNodes square
-- output: 4
你不能沒有語言之外去解決這個問題。您的獨特標籤(如整數)的概念是將問題重構爲可解的問題。 –
問題可以在標記邊緣的情況下解決嗎?即,a = Node(b,0)(c,0)',表示'a'在'b'和'c'的第一個插槽上? – MaiaVictor
如果標籤不是全局唯一的,那麼您仍然會遇到無法確定兩個節點是否不同的問題。 –