Napotkałem następującą konstrukcję w różnych miejscach projektu Ocaml. Czytam kod.Czy "match ... true -> foo | false -> bar" ma szczególne znaczenie w Ocaml?
match something with
true -> foo
| false -> bar
Na pierwszy rzut oka działa jak zwykle if
oświadczenie. Na drugi rzut oka, to .. działa jak zwykle oświadczenie if
! Na trzeci rzut oka postanowiłem zapytać w SO. Czy ten konstrukt ma specjalne znaczenie lub subtelną różnicę w stosunku do stwierdzenia if
, które ma znaczenie w osobliwych przypadkach?
zgadzam, ale chciałbym umieścić to w inny sposób: Myślę, że programowanie w ML sprawia, że można zobaczyć wzory pasujące wszędzie po jakimś czasie , więc najpierw napisz "dopasuj x z" i zacznij myśleć dalej. –
Jest to nie tylko równoważne z instrukcją if, ale całkiem możliwe, że wszystkie instrukcje if zostaną w ten sposób usunięte przez kompilator. –