私はプログラムで作業していますが、トリはトリプルのリストを取ります。それらのうちのどれかに応じて、他の部分の合計トリプルリストの一部を累積するプログラムを作成する - Haskell
totalWeightOfFirstClass :: [Parcel] -> Weight
totalWeightOfFirstClass [] = go
totalWeightOfFirstClass ((weight, postcode, firstclass):xs) =
if firstclass == True then
go weight
totalWeightOfFirstClass xs
else
totalWeightOfFirstClass xs
where
go :: Int -> Int
go _ = 0
go x =
だから、プログラムは、リスト内のすべての重み値を追加し、そのトリプルはファーストクラスだった場合にのみ、最後にそれを表示する必要があります。これまでは、すべての値を累積して最後に表示するというヘルパーステートメントがあります。
何か助けやアドバイスをいただければ幸いです。
よろしく、Kieran。
これはむしろ非効率的になるでしょう。なぜ見えますか? – dfeuer
@dfeuer最初にフィルタリングして余分なメモリを取り除き、より速くすることができますが、tailは再帰的で、sum関数の標準的な再帰的実装と思われます。私は個人的にHuStmpHrrrのソリューションと同様の方法で実装しますが、理解しやすいようにしたいと思っていました。 – Zpalmtree
@dfeuerなぜ私は見ることができません。おそらくあなたは自分自身を言うことができますか? –