我有簡單的元組(例如從數據庫讀取),我不知道元素的數量和內容。例如。 (String, Int, Int)
或(String, Float, String, Int)
。操作「任意」元組
我想寫一個通用函數,它將採用各種元組並用字符串「NIL」替換所有數據。如果字符串「NIL」已經存在,它應該保持不變。
說回例如: ("something", 3, 4.788)
應導致("something", "NIL", "NIL")
("something else", "Hello", "NIL", (4,6))
應導致("something else", "NIL", "NIL", "NIL")
我明明不知道從哪裏開始,因爲它不會與元組做這是一個問題這是已知的。如果沒有Template Haskell,可以在這裏得到我想要的結果嗎?
你想讓第一個項目獨立,但所有其他項目都是「NIL」? – AndrewC
你確定元組是正確的數據類型嗎?有一些方法可以做到這一點,但如果您將數據轉化爲更好的類型,那麼這種方法就不那麼笨拙了。另外,你確定你想要第一個元素得到這樣的特殊待遇嗎? – shachaf
使用像SYB這樣的泛型庫比Template Haskell更好 - 根據user5402的回答,你應該看看HList。 –