12:17a |
Понял, как должна звучать Функция нахождения числа из строки, содержащей это число число. То есть, String -> Int которая, "012345" -> 12345
Так вот, она должна вызываться так int-value {строка} {значение по умолчанию}
В качестве значения по умолчанию принимаются функции без параметров и конструкторы исключений (которые тоже функции).
Если распознать строку не удалось (допустим, там написано вместо числа "ПРЕВЕД", штатная ситуация), возвращается значение по умолчанию. Если оно функция, эта функция вызывается. Если это исключение, то оно бросается.
То есть, в маленьком скрипте будут писать num = int-value argv[1] (exit 1 "Укажите номер!") В случае, когда значение числа критично, будут писать num = int-value parameter (fail-exception ("Unrecognized number " . parameter)) В случае, когда есть умолчание, будут писать id = int-value params["id"] -1
Ну и для кучи, для спискового контекста будут писать numList << reduce . map (int-value ? []) stringList
Монады без монад, и удобно! |