2011-11-30 115 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 ...'并在下一次调用中使用它作为参数? –