我學習Haskell對我自己和我通過鍛鍊在獨聯體homework 194困惑:CIS 194鍛鍊混亂
練習1之前,我們就可以開始評估表達式和語句,我們需要一些方法來存儲並查找變量的狀態。我們將一個狀態定義爲類型爲String - > Int的函數。這使得查找變量的值非常容易;在狀態中查找 「A」的值,我們只需調用狀態「A」。每當我們分配一個變量時,我們都想更新程序狀態。實現以下功能: 延長::狀態 - >字符串 - >內部 - >國家
提示:您可以使用輸入狀態作爲一個黑盒子爲其他 比你分配一個變量。
例子: 讓ST」 =延長ST聖 「A」 5 」 「A」 == 5
我根本不明白它的要求和示例。這是如何提供查找「A」價值的方法?由於State
被定義爲type State = String -> Int
,extend
的類型是String->Int->String->Int->State
?
很抱歉,如果這是真的小學,但這是否意味着(在你的例子)'ST 「A」'是'(與字符串>智力)'了'extend'的部分(即'State')類型?如果是,那麼它應該跟着一個字符串? – Liumx31
沒錯。在調用'extend st'A「5'時,'st'需要有'String - > Int'類型。在'let st'A'= 3'表達式中,我使用模式匹配來定義一個部分函數st,它在「A」的輸入上返回3。沒有爲任何其他輸入值定義「st」。如果你正確地定義了'extend',那麼'st''也不會被定義爲任何其他輸入,並且'st''只被定義爲「A」和「B」。 – chepner
其實我想知道'st'A''在'extend st「中是否有'5'類型(String - > Int),那麼不應該在'extend'的後面加上'String' '(String - > Int)[它是st「A」] - > String - > Int ...' – Liumx31