4

Мне просто интересно, эти две функции будут делать то же самое. Но какой из них я должен использовать?Какой способ этих двух совпадений шаблонов более предпочтителен?

let f a = 
    match a with 
     b -> a;; 
let f a = 
    match a with 
     b -> b;; 

Или это зависит от ваших предпочтений?
Я чувствую, что второй будет лучше, но я не уверен.

ответ

8

Производительность разумная нет никакой разницы. Стиль-стиль b -> a немного проблематичен, потому что у вас есть неиспользованная переменная b. _ -> a будет иметь больше смысла. Кроме этого, это просто предпочтение.

Лично я бы предпочел _ -> a более b -> b, потому что он не вводит дополнительную переменную.

PS: Я предполагаю, что в вашем реальном коде есть больше случаев, чем просто b - иначе вы могли бы просто написать let f a = a.

+0

Благодарим Вас за объяснение! – octref

1

Кроме того, в вашем конкретном примере я бы переписать с помощью function

let f = function 
     | b -> b