私はCsp -> Var -> Int -> Csp
型の関数を持っています。この関数を[Var]
のリストに適用したいと思います。誰かが私を助けてくれるのだろうかと思っています。関数型プログラミング、Haskell関数を変数リストに適用する
答えて
であるあなたは倍にしたいように、それは例えば、聞こえると仮定します部分適用にもっと適したものにする:
foo :: Int -> Csp -> Var -> Csp
bar :: Int -> Csp -> [Var] -> Csp
bar x = foldl (foo x)
鮮やかなあなたの助けを借りてありがとう:) – user1226239
http://zvon.org/other/haskell/Outputprelude/map_f.html
これはありません、あなたが探しているものかもしれませんか?
マップを使用しようとしましたが、このエラーが予想されるタイプ[CSP]と推定タイプCSPと一致できませんでした。 – user1226239
OPが値を2番目の引数3つの引数を持つ関数のうちの1つです。これはもっと説明が必要です。 – amindfv
map
は、関数をとり値のリストに適用します。 私は機能f x = x + 5
、およびリストl = [1,2,3]
を持っている場合、その後、map f l
はf :: Csp -> Var -> Int -> Csp
考える[6,7,8]
、およびl :: [Var]
を返しますので、簡単な例として、あなたがタイプ:: Csp -> Int -> Csp
を持つことになります
map (\x -> f csp x int) l -- note that the variable names (like "csp") can be anything
を書く必要があります。つまり、関数のリストを返します。
折りたたみは何ですか? foldlにはfoldl :: (a -> b -> a) -> a -> [b] -> a
という署名が付いていますので、a
はCsp
hとなり、b
はVar
となり、タイプはfoldl :: (Csp -> Var -> Csp) -> Csp -> [Var] -> Csp
になります。最初の引数については、\csp var -> f csp var yourFixedInt
のようなものを渡します。f
はあなたの関数です。
あなたはfold
に慣れていない場合、これは何だがCsp
に、Var
秒のあなたのリスト内の各var
のために、あなたはそれを渡す機能(固定Int
引数で、この場合はちょうどあなたの関数)を適用していますアキュムレータおよびvar
。
は(周りのひだの多くの方の説明がありますが、私は、少なくとも短いコメントを含めると思います考え出し)あなたは倍にしたい、またはそれは私に聞こえる
。
foo :: Csp -> Var -> Int -> Csp -- your function
bar :: Csp -> [Var] -> Int -> Csp
bar c0 vs x = foldl (\c v -> foo c v x) c0 vs
それは価値が少し引数の順序を変更するかもしれないが: は、あなたが持っている機能は、あなたのコメントからf
f :: Csp -> Var -> Int -> Csp
vars = [ ..... ] :: [Var]
i :: Int -- the constant int argument to f
foldl g vars where g c v = f c v i
私はあなたが折り畳みが必要と思う。
answer :: (Csp -> Var -> Int -> Csp) -> Csp -> [Var] -> Int -> Csp
answer f csp vs i = foldl (\csp' v -> f csp' v i) csp vs
- 1. haskellの多型関数のリスト?
- 2. 関数型プログラミングにおける関数の型の決定
- 3. Haskell IO関数 - >型マッチエラー
- 4. 1つの関数でhaskellの関数リストをカプセル化する
- 5. char型変数を型文字列関数に渡す関数
- 6. 関数型プログラミング:あなたは、引数
- 7. 関数haskellのextern関数?
- 8. Haskell関数が存在型を返す
- 9. 数字に関数リストを適用する
- 10. プログラミングで関数のデータ型を返す
- 11. 関数型プログラミングに基づくUI
- 12. Haskellでファイルの各行に関数を適用する方法
- 13. Generalize haskell関数
- 14. Haskell replaceValues関数
- 15. Haskellのオーバーラップインスタンスと型の関数
- 16. Haskellの関数型特殊化
- 17. レコード型の多態関数Haskell
- 18. Haskellで関数 'floor'の型エラー
- 19. 関数プログラミングR
- 20. Haskell:リストのリストに関数をマップする
- 21. 関数型プログラミングでの再帰代数型の理解
- 22. 多数の関数をエクスポートするHaskell
- 23. 配列リストの適用関数
- 24. 関数型プログラミングの依存性注入
- 25. C/C++での関数型プログラミング?
- 26. jquery変数にPHP関数を適用する
- 27. Haskellの `a - > b`型の関数を` String - > String`型に変換する
- 28. Haskellの関数の引数として渡す型?
- 29. 関数型プログラミング - すべてのパラメータを持つ関数呼び出し
- 30. 関数型プログラミングの純関数はすべて連続していますか?
が固定されることになってint型/ CSPの引数で、[ - > int型 - > CSP CSP]あなたは上で反復するCSP引数を使用したいですか、あなたは結果の型のリストになりたいですか? –
説明のために:varのリストの他に、cspとintもあり、cspのリストが必要ですか?これは正しいですか? – Boris
ここに行くことはあまりありません。もっと具体的にして、試したこと、期待している結果などを示すコードを追加できますか? – hammar