我在讀「!瞭解你一個Haskell爲大善」,精緻漂亮的書,我知道如何使用函數內部遞歸處理狀態或在許多情況下,簡單摺疊可以在經驗語言代替代碼中需要的突變,這是確定純函數式編程:如何編寫代碼,其中3個功能可能會影響同一狀態
我讀過有關國家的單子,這是不錯,但我覺得這只是一個詭計。這句話描述了簡明什麼狀態單子
國家單子是真的結束了一個額外的參數周圍傳遞 狀態的功能的想法的抽象 - 它仍然 純,它只是給你很多的語法幫助
how to simulate haskell state?
現在我想在hypotetical代碼:
我有3個功能,第一一個「用戶」返回一個包含用戶名和年齡的元組(「tom」,20)。第二個也返回與公司名稱和基礎的一年的元組(「谷歌」,1998年)和第三可能是一個非贏利組織(「Mozilla的」,2003年),非常簡單。
但是什麼發生,如果我需要在每次調用?這些元組將被附加到一個列表中?
選中此反應似乎我可以(可能?)使用可變的狀態
Managing state - chapter 3 of SICP
是否有可能一個不可改變的,純淨的選擇嗎?我很確定使用功能反應式編程是可能的,但我希望知道「經典的純功能解決方案」。
這我不清楚你是什麼問。如果每個函數都返回這三個值中的一個,那麼狀態是什麼? – Cirdec 2014-09-13 05:56:53
不爲什麼,只返回與附加數據的新名單。 – 4lex1v 2014-09-13 06:14:01
嗨Cirde,對不起,如果我的問題不明確:我需要比所有這些功能添加一個元組到同一個列表L ...國家將在單列表 – user1050817 2014-09-13 06:19:03