ho trovato questa domanda sulla funzione speciale "o" nello schema:Perché non posso definire una "o-funzione" nello schema?
Joe Hacker afferma a gran voce che non v'è alcuna ragione o nello Schema ha bisogno di essere speciale - può solo essere definito dal programmatore, così:
(define (or x y) (if x #t y))
Joe è giusto?
Non riesco a capire perché non dovrebbe essere possibile farlo.
Potrebbe qualche esperto di schemi spiegare per favore se funziona, e se no: perché no?
Non so quale libro si sta utilizzando per imparare Scheme, quindi ho dovuto andare a [specifica linguaggio Scheme] (http://www.r6rs.org/final/html/r6rs/r6rs-ZH -14.html # node_sec_11.4.5). "Se non ci sono s, viene restituito #f. Altrimenti, le espressioni vengono valutate da sinistra a destra fino a quando uno restituisce un valore val vero (vedere la sezione 5.7) oppure viene raggiunto l'ultimo . Nel primo caso, o espressione restituisce val senza valutare le restanti espressioni.In quest'ultimo caso, viene valutata l'ultima espressione e vengono restituiti i suoi valori. " La funzione 'o' di Joe funziona in questo modo? –
http://www.cs.washington.edu/education/courses/cse341/99wi/scheme/mini-exercises.html –
A proposito, * può * essere definito dal programmatore, ma non come una semplice funzione. Non è speciale per determinati valori speciali. http://www.scheme.com/tspl4/further.html#defn: o – erjiang