В догонку к предыдущему сообщению.
let find = function
| "by" :: "name" :: _ :: [] -> 3
| "by" :: "autor" :: _ :: [] -> 4
| "by" :: "autors" :: _ :: [] -> 5
| _ -> 0
и
let find = function
| "by" :: "name" :: t when t <> [] -> 3
| "by" :: "autor" :: t when t <> [] -> 4
| "by" :: "autors" :: t when t <> [] -> 5
| _ -> 0
Так вот, 2й вариант значительно хуже! Он развернётся аж в две функции, каждая из которых будет сложнее того, во что развернётся 1й варинт(листинги приводить не буду - всё это можно увидеть в рефлекторе).
Комментариев нет:
Отправить комментарий