你好Haskellers和Haskellettes,哈斯克爾 - 嵌套空列表
閱讀http://learnyouahaskell.com/當我的一個朋友想出了一個問題:
是否有可能在Haskell寫一個遞歸函數,提供真正的,如果所有的子-sub -_-子列表爲空。我的第一個猜想是 - 應該是 - 但是我寫了一個類型註釋的問題很大。
他試圖像
nullRec l = if null l
then True
else if [] `elem` l
then nullRec (head [l]) && nullRec (tail l)
else False
這是 - 不工作 - :-)
我想出了類似
- 與CONCAT摺疊 - 獲得AA單一長串
(給我執行問題) - 或製作無限樹狀數據類型 - 並且使這個從列表
(尚未實施)
但後者聽起來有點像矯枉過正這個問題。 什麼是你的想法 - 在這樣;-)
感謝晴朗的週日提前
爲所有評論的反應 - 這是不好的風格,我想補充 這只是一個實驗!
不要在家裏試試! ;-)
想想這種函數的類型應該是什麼(如果您在普通列表上實現它)! – yatima2975
我想到了 - 它應該是無限的[[... [a] ...]],但這不可能在哈斯克爾寫下來 - 這就是爲什麼我想出了第二種方法。但有沒有更簡單的方法來做到這一點。 另外我的大腦有點慢,因爲我今天生病了。 – epsilonhalbe
生病與否,你走在正確的軌道上!編寫一系列函數'nullRec2 :: [[a]] - > Bool','nullRec3 :: [[a]] - > Bool'等很簡單(嘗試一下!),但是你無法讓他們輕鬆適應單一類型簽名。您可能需要樹型數據,如'數據樹a =分支[樹a] |節點a'或者可能有類型類的東西(對此方法還沒有多少考慮)。 – yatima2975