2016-10-05 8 views
3

私は、関連付けられた番号と説明を持つ車を含むデータベースを持っています。このデータベースは、次のようになります。F#マップ内のセットを見つける

type Database = Map<CarNo, CarDesc> 
type CarNo = int 
type CarDesc = Name * Price 
type Name = string 
type Price = int 

私は数字に基づいて、すべての車の価格の合計を取得したい場合は、どのように私はその機能になるだろうか?私は始める方法にちょっと固執しています。

ヒントありがとうございます。

+0

使用高次の車#による最初のフィルタへの地図モジュールから機能し、その後、あなたは、「すべての車の総和」より正確にする必要があります –

+1

あなたの地図に繰り返しますか?どのようにして自動車を合計することができるか(価格によって、その名前の長さによって)? "数字に基づいて"?どの番号(CarNo?、Price?)、どの基準? Map.foldはおそらくあなたの友人になります。 – Sehnsucht

+0

混乱については申し訳ありませんが、もちろん価格の合計です。私はOPを編集しました。 – Left4Cookies

答えて

4

私は、このような関数がマップ内のすべての車の価格を合計すると思います。しかし、質問タイトルとは対照的に、ここには何のセットもありません。

let sumPrices (db:Database) = 
    db |> Map.fold (fun acc _ (_, price) -> acc + float price) 0.0 
関連する問題