0
我有一個函數可以接收一些數據並返回一個值數組。我需要將數據列表映射到樹上。如何從一個獲取父節點信息的函數構建樹
當我創建樹每次調用我的函數需要三個參數:
- 從字符串
- 字符的字符串中的索引字符
- 部分功能的輸出爲節點的父(或零根)
對於參數的緣故,讓我們說我有:
input = "ABC"
func :: (Char, Int, Int) -> [(Char, Int, Int)]
func ('A', 1, 0) = [('Q', 1, 1243)]
func ('B', 2, 1243) = [('D', 2, 7512), ('R', 2, 8253)] -- 1243 taken from above
func ('C', 3, 7512) = [('E', 3, 2765)]
func ('C', 3, 8253) = [('Z', 3, 9836)]
這將映射到像一棵樹:
('Q', 1243)
/ \
('D',7512) ('R',8253)
| |
('E',2765) ('Z',9836)
前兩個參數都很好,我可以建立名單前獲得這些:
input `zip` [1..]
我不知道如何儘管得到第三個參數,因爲在我開始構建樹之前我只知道根節點的值(它將爲零)。我將不得不瞭解Monads?
注意:我對Haskell和函數式編程都是全新的。
非常好!非常感謝! – RichardTowers 2013-02-10 01:44:25