Hi Im di fronte a un problema con le car
e cdr
funzionicar e cdr nello Schema me crazy
ad esempio:
prima ho definito una lista chiamò x
(define x (a (bc) d ((ef) g)))
così x ora è uguale a (a (bc) d ((ef) g))
ora ad esempio ho bisogno di ottenere il g da questo lista utilizzando solo car
e cdr
(!! noshortcuts come caddr cddr !!) la risposta corretta è:
(car(cdr(car(cdr(cdr(cdr x))))))
MA come? :-(Io lavoro secondo le regole (la car
dà la testa di lista e cdr
dà la coda)
e invece di ottenere la risposta di cui sopra Continuo a raggiungere risposte sbagliate. uno può aiutare a capire questo. .. darmi un passo o un modo per risolvere un passo alla volta
Grazie in anticipo. sono davvero stufo di Scheme.
@ (tutte le persone fantastiche che hanno risposto alla mia domanda) Capisco cosa avete scritto voi, basta avere qualche domanda | Ragazzi intendete quando raggiungo il sommo come ((g)) dovrei usare la macchina per sbarazzarmi delle parantesie esterne per ottenere (g)?| –
Una delle cose che mi distingue sempre dai linguaggi basati su LISP è il ** INCREDIBLY ** cattivo schema di denominazione che tutti sembrano condividere –
Quando hai '(g)', hai una lista, e hai bisogno di un atomo. Usa 'car' per ottenere il primo elemento. Allo stesso modo, se hai '((g))', devi usare 'car' due volte, prima di arrivare a' (g) 'e poi a' g'. –