私はHaskellの初心者です。すなわち、C
は、すべてのループで2により成長し、のiは数字A
とB
の2つの無限リストを持っていると私はx+y
年代とx-y
年代x <- A
とy <- B
の配列を含む他の無限のリストC
を作成したいとしましょう。これを行う最も賢い方法は何ですか?haskellの2つのリストに対する2つの操作
1
A
答えて
6
無限リストから2要素リストを作成し、連結します。無限リストについては
concat [[x+y, x-y] | (x, y) <- zip listA listB]
4
定義によって、あなたが
:-)そうのように、一緒に無限のストリームを圧縮することであろう明白な方法をデバッグするのはあまりにも巧妙になりますので、あなたはおそらく、最も賢い方法を望んでいない:
zipWith k as bs
where
k a b = (a + b, a - b)
0
f xs = concat . zipWith go xs where
go x y = map (($y).($x)) [(+),(-)]
1
だけ、それだけで
mkList (x:xs) (y:ys) = x+y : x-y : mkList xs ys
だと、あまりにも、有限のリストをサポートするために、あなたは基本ケースに
mkList _ _ = []
+0
私はこの解決策が最も分かりやすいことを発見しました。 – demi
関連する問題
- 1. 2つのリストでの操作<>
- 2. 2つのディクテーションに対するメンバー単位の操作
- 3. リストの2つのリストに操作を設定
- 4. Golangは2つの操作
- 5. Haskellのリスト操作
- 6. 2つのリストから値を操作するJavascript with Angular
- 7. Haskellリスト操作
- 8. Haskell - リスト操作
- 9. Haskellで2つのリストを要素ごとに掛ける
- 10. 2つの小数点での操作
- 11. Haskell - 2つのリストから要素を交互に返す
- 12. Haskell:リストを2つの新しいリストのタプルに分割する
- 13. Haskellで2つのリストを結合する方法
- 14. 2つのリスト
- 15. 2つのリスト
- 16. 異なるnumblockを持つ2つの配列の操作
- 17. Haskellでパターンマッチングを行う2つのリストを比較します。
- 18. 2つのUITableViewController対2つのUITableViewsをスワップするUIViewController
- 19. 1つのonclickで2つの別々の操作
- 20. Haskellで正確に2つの要素を持つパターン一致リスト
- 21. fill_between 2つのリスト
- 22. ハスケルミックス2つのリスト
- 23. テーブルを操作する場合、1つのクラスに対して2つのセレクタを使用できますか?
- 24. 2つの列から1つのリストを作成する
- 25. MySQLのリミット2対2つのクエリパフォーマンス
- 26. 2つのリストを1つのリストにマージする方法
- 27. プロローグ2のリストは、対応する要素の操作を行います
- 28. リストの2つのリストの間で操作を実行し、最初のリストを追跡する
- 29. 2つのリストの間に1対多に印刷
- 30. Haskellの2つの引数にブール関数のリストを適用します。
なぜzipを使用するのですか? x < - listA、y < - listB? – nist
@nist:彼らは同じではないので。これはリストのアイテムのすべての組み合わせを示しますが、ここではそれらをペアごとに一致させたいと考えています。しかし、 'ParallelListComp'拡張を使用すると、' | x < - listA | y < - listB'であり、これは 'zip'を使うのと同じです。 – hammar
何か新しいことを学ぶことはいつもうまくありがたいです – nist