2016-08-17 6 views
0

これはおそらく非常に簡単な質問です。リストをリストに追加する

文字列xsとysの2つのリストが与えられている場合、2つが前に付いているリストのリストが必要です。例えば

body = ["1", "2"] suffixes = ["a", "b", "c"]

は、私が理解からの出力に

[["1a", "1b", "1c"], ["2a", "2b", "2c"]]

を与えるだろう、Haskellは他の言語がfor eachを使用するmapを使用していますので、私はAPPENDをマッピングしてみました関数をリストに追加すると、 map (++"1") suffixes がわかりませんこれをハードコーディングする代わりに["1", "2"]に動的に適用する方法

+2

たぶん、別のマップ? – Alec

答えて

6

リストの境界(非常に一般的なケース)必要がない場合:それ以外の場合は

Control.Applicative> liftA2 (++) ["1", "2"] ["a", "b", "c"] 
["1a","1b","1c","2a","2b","2c"] 

を、ちょうど巣mapへお電話:

> map (\prefix -> map (prefix++) ["a", "b", "c"]) ["1", "2"] 
[["1a","1b","1c"],["2a","2b","2c"]] 
+0

「concat <$> sequence [["1"、 "2"]、["a"、 "b"、 "c"]] – amalloy

関連する問題