コンピュータや音楽の事書いてます

関数型言語

Haskellめも 12平均律の比率

map (2**) $ map (/12) [1..12] 結果 [1.0594630943592953,1.122462048309373,1.189207115002721,1.2599210498948732,1.3348398541700344,1.4142135623730951,1.4983070768766815,1.5874010519681994,1.681792830507429,1.7817974362806785,1.88774862536338…

Haskellメモ:遅延評価と末尾再帰とStack space overflow

dl = [ x/100 | x <- [1..] ] dlの頭から、指定した値を超えないところまで合計をだす。 sumlist (x:xs) n = if x >= n then 0 else x + sumlist xs n sumlist dl 10000 とすれば9999.99までの合計がだせるはず。だけど Stack space overflow になってしまう…