Перезапись предыдущих функций - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть функция, которая содержит первые 101 символ:

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

И что мне нужно сделать, это сделать, чтобы следующая функция постоянно добавлялась к этой, пока я пробовал что-то вроде этого, но это не сохраняет результат.

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

В общем, мне нужно иметь возможность постоянно расширять функцию моих персонажей с помощью функции добавления, и не терять результаты.Спасибо за ответы.

Ответы [ 2 ]

4 голосов
/ 30 ноября 2011

Значения неизменны в Haskell, поэтому

characters ++ somethingElse

создает новый список, содержащий копию characters спереди, а characters остается неизменным.

Итак,как заявлено, ваша задача невозможна.Каковы фактические требования?

1 голос
/ 30 ноября 2011

Я не знаю, что вы пытаетесь сделать со своим примером. Но чтобы ответить только на вашу тему, вы можете import с флагом hiding и написать свою собственную версию функции, например:

import Data.Text hiding (append)

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...