高階関数を利用することにより、関数を実装する最良の方法は何makeCloths
ですか? 私が達成したいと思っているのは、 で提供される正しい引数を のmakeCloths
各メソッドに自動的に入力できることです。そのため、将来さらにメソッドが に追加され、そのメソッドが の引数のみを使用する場合、 のコードを変更する必要はありません。methodsList
materialList
methodsList
materialList
makeCloths
data Material = WhiteCloth Int
| BlueCloth Int
| RedCloth Int
makeWhiteShirt :: Material -> Clothe
makeWhiteShirt (WhiteCloth x) = .....
makeBluePants :: Material -> Clothe
makeBluePants (BlueCloth x) = .....
makeRedBlueDress :: Material -> Material -> Clothe
makeRedBlueDress (RedCloth x) (BlueCloth y) = ......
methodsList = [ makeWhiteShirt, makeBluePants, makeRedBlueDress ]
materialList = [ WhiteCloth 3, BlueCloth 2, RedCloth 2]
-- call makeCloths like so
-- listOfClothes = makeCloths methodsList materialList
makeCloths :: [a] -> [b] -> [Clothe]