HaskellでpowerList
関数を以下のように書くことができますか? n
の乗算演算でそのようなリストを作成したいと思います。各要素は、n
指数演算ではなく、前の要素の単純な倍数です。Haskellで `[1、x^1、x^2、...、x^n]`を計算する
理想的には、実装はきれいで、慣用的なHaskellであり、合理的に効率的です。各要素が前の要素の関数であるリストについて
-- powerList x n -> [1, x, x^2, ..., x^n]
-- For example:
-- powerList 2 0 -> [1]
-- powerList 2 1 -> [1, 2]
-- powerList 2 2 -> [1, 2, 4]
-- powerList 2 3 -> [1, 2, 4, 8]
-- powerList 2 4 -> [1, 2, 4, 8, 16]
powerList :: forall a. Integral a => a -> a -> [a]
powerList _ 0 = [1]
powerList x n = [] -- ???
素晴らしい!ありがとう!タイマーが許可するときに受け入れます。 – clay
ハスケルは無限の形式[0,1 ..]を可能にしますので (\ kx - > map(k ^)$ take(x + 1)[0,1 ..])2 4 これは[1 、2,4,8,16] また、私は4値を求めて5を生成する必要があるのか理解できません。(X + 1)はxであり、結果は[1,2,4,8] – fpmora
です。無限のジェネレータを制限するためにtakeを使うと、nを直接使うことができます。 (\ kn - > map(k ^)[0..n])2 4これは5つの値[1,2,4,8、 16] – fpmora