2012-06-02 10 views

Odpowiedz

43

Uzasadnienie

jednoręki wariant if został usunięty z rakiety, która zapobiega błędów.

W kodzie funkcji zawsze używa się dwuramiennego wariantu if.

(if test expr-on-true expr-on-false) 

zapominając drugie ramię expr-on-false nie prowadzić do błędów składni, ale błąd wykonawczego (termin powróci #<void>).

Aby zapobiec częstym występującym błędom w kodzie funkcjonalnym, podjęto decyzję o wprowadzeniu formularza when dla jednorękiego wariantu if.

(when test expr-on-true) 

Oprócz zapobiegania przypadkowym błędom, nowy formularz wyraźnie wskazuje czytelnikowi kodu, że kod opiera się na efektach ubocznych.

Przenoszenie kodu z standardowym schemacie do rakieta

Jeśli spróbujesz uruchomiony kod programu w rakietę i zobaczyć komunikat o błędzie

if: bad syntax (must have an "else" expression) 

trzeba przepisać wyraz if do when lub unless.

Wystarczy przepisać:

(if test expr1) to (when test expr1) 

i

(if (not test) expr1) to (unless test expr1). 
Powiązane problemy