2
concatr ::Integer -> [[Integer]] -> [[Integer]]
concatr x (y)    = [x] : y
concatr x (y:ys) = concatr x y:  concatr x ys

私はこれの非常に多くの組み合わせを試したので、頭が痛くなり始めました. 私は正確に何を間違っていますか?渡されたリストのすべてのサブリストに整数を入れたいだけです。

4

2 に答える 2

8

機能を使用できますmap

concatr :: Integer -> [[Integer]] -> [[Integer]]
concatr x ys = map (x:) ys

簡潔な解の Eta reduce :

concatr x = map (x:)
于 2012-05-13T00:58:24.513 に答える
0

避けたい場合map

concatr :: Integer -> [[Integer]] -> [[Integer]]
concatr x []     = []
concatr x (y:ys) = (x:y):concatr x ys

2 つのケース:

  • リストが空の場合、空のリストを返します。
  • リストが の場合y:ys、新しいヘッドはであり、残りの部分x:yを再帰的に呼び出します。concatr

例:concatr 1 [[0],[2]]です[[1,0],[1,2]

于 2012-05-13T15:55:23.943 に答える