Каково различие между 'забавными' и 'функциональными' ключевыми словами?

Я думаю, что общий аргумент против сохранения изменяемого состояния в статических классах и использования их в качестве глобальных переменных. Нет ничего плохого в статических вспомогательных методах в статическом классе.

А что касается того, почему глобальные переменные плохие, я уверен, что здесь и в Google вы найдете полмиллиона страниц и постов об этом.

36
задан John Källén 25 November 2015 в 22:04
поделиться

3 ответа

Семантика для этого такая же, что и в F # (вероятно, потому что F # основан на OCaml):

  • function позволяет использовать сопоставление с образцом (например, | ), но, следовательно, ему может быть передан только один аргумент.

     function p_1 -> exp_1 | … | p_n -> exp_n
    

    эквивалентно

     fun exp -> сопоставить exp с p_1 -> exp_1 | … | p_n -> exp_n
    
  • fun не разрешает сопоставление с образцом, но может передавать несколько аргументов, например

     fun xy -> x + y
    

Когда может использоваться любая из двух форм, fun обычно предпочтительнее из-за его компактности.

См. Также документацию OCaml по функциям .

38
ответ дан 27 November 2019 в 05:50
поделиться

Я думаю, что

function patterns

- это сокращение для

(fun x -> match x with patterns)

, где «шаблоны» - это, например,

| Some(x) -> yadda | None -> blah

fun args -> expr

- это то, как вы определяете лямбду.)

21
ответ дан 27 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: