Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы

На лоре спросили:
/можно ли написать на Racket такую функцию, чтобы внутри неё (в её динамическом окружении) делений на 0 возвращало 0, а не прерывало вычисления/

Короче, да:

(define-syntax-rule (try-or-zero body ...)
(let/cc k (with-handlers ([exn? (λ _ (k 0))])
body ...)))

(define (testl l)
(if (null? l)
'()
(cons (try-or-zero (/ 1 (car l)))
(testl (cdr l)))))

(testl '(1 2 3 0 5))

#J5GWTF / @ninesigns / 4267 дней назад

ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.