2011-11-30 104 views
-2

我有一個功能,它包含的第一個101個字符:覆蓋原有功能

characters :: [String] 
characters = [[chr i] |i<-[0..100]] 

而我需要做的是讓下一個功能附加到這一個永久,到目前爲止,我已經試過類似這個,但是這不保留結果。

append :: [String] -> String -> String -> [String]  
append characters xs ys = characters ++ [(take 2 (xs++ys))] 

所以我非常需要的是能夠不斷擴展我的字符功能與追加功能,而不會失去結果。 感謝您的答案。

+0

使用let語法? – BLUEPIXY

+2

你的例子中的'characters'不是一個函數。 – sepp2k

+0

嗯,這是一個CAF,所以在技術上它不是一個通常的值 – nponeccop

回答

1

我不知道,你正在試圖用你的例子。但是,爲了回答您的主題,你可以importhiding -flag,寫自己的一個函數的版本,如:

import Data.Text hiding (append) 

HTH

4

值是在Haskell不變的,所以

characters ++ somethingElse 

產生一個新的列表,其中包含前面characters的副本,characters本身保持不變。

所以,如上所述,你的任務是不可能的。實際要求是什麼?

+0

好吧,爲了澄清它,我需要的是能夠使用append funcion不斷擴展我的字符函數,而不會失去擴展的結果。 – user1073158

+2

@ user1073158也許我正在密集。你追加的列表已經是'append'的參數了,所以你只需要綁定結果'let foo = append ...'並在下一次調用中使用它作爲參數? –