Совпадение в бессмысленном стиле в F #? - PullRequest
1 голос
/ 07 июля 2019

Рассмотрим этот код:

type Fruit = Apple | Banana

let totalCost fruits = 
  fruits
  |> Seq.map (fun fruit -> 
    match fruit with
    | Apple -> 0.50
    | Banana -> 0.70
  )
  |> Seq.sum

Могу ли я переписать totalCost, чтобы быть более кратким, чтобы удалить идентификатор fruit?

Примерно так:

// Not real code
let totalCost fruits = 
  fruits
  |> Seq.map (
    match
    | Apple -> 0.50
    | Banana -> 0.70
  )
  |> Seq.sum

1 Ответ

7 голосов
/ 07 июля 2019

Ключевое слово, которое вы ищете, это function:

|> Seq.map ( 
    function
    | Apple -> 0.50 
    | Banana -> 0.70
)

function переводится в fun x -> match x with

...