0xd34df00d
01.07.2012 22:37 Azoth_primary
Почему в хачкель не запилили мемоизацию? Я негодую! Вместо няшного
f 1 = 1
f 2 = 2
f n = f (n — 1) + f (n — 2)
приходится писать
f' 1 = [1]
f' 2 = [2, 1]
f' n = (head xs + (head $ tail xs)) : xs
where xs = f' (n — 1)
f'' = head . f'
Противоречивые чувства.
С одной стороны, f' читаемо примерно как моча неандертальца.
С другой стороны, мемоизированная говнохуйня на аррее получилась на порядок медленнее :[
Покажи говнохуйню на аррее.
f n = memoized ! n
where memoized = [1, 1] ++ zipWith (+) memoized (tail memoized)
Succinctness!