2011-11-30 6 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

구문을 사용 하시겠습니까? – BLUEPIXY

+2

예제에서'characters'는 함수가 아닙니다. – sepp2k

+0

글쎄, 그것은 CAF입니다. 기술적으로는 일반적인 값이 아닙니다. – nponeccop

답변

1

나는 당신이 당신의 모범으로 무엇을하려하는지 잘 모른다. 그래서,

4

값은 하스켈 불변

import Data.Text hiding (append) 

HTH

characters ++ somethingElse 
을 :하지만 당신의 주제에 대답, 당신은 hiding -flag와 import과 같은 기능의 자신의 버전을 쓸 수 있습니다

은 앞쪽에 characters 사본을 포함하는 새 목록을 생성하며 characters은 변경되지 않습니다.

따라서 명시된대로 작업을 수행 할 수 없습니다. 실제 요구 사항은 무엇입니까?

+0

좋아요, 분명히하기 위해 추가 기능을 사용하여 내 캐릭터 기능을 지속적으로 확장하고 확장 결과를 잃지 않아야합니다. – user1073158

+2

@ user1073158 어쩌면 나는 밀도가 있습니다. 추가 할리스트는 이미'append'의 매개 변수이므로, 결과를 바인드하고'let foo = append ... '를 바인드하여 다음 호출에서 매개 변수로 사용하면됩니다. –