Hacker News new | past | comments | ask | show | jobs | submit login

And where did I say to use them everywhere? I usually use them in let bindings decomposing complex data structures:

  (let* ((data '((user1
                  (email . ("bob@dom1" "bob@gmail" "hey@bob.com"))
                  (sshkeys . ((default . key1)
                              (alt1 . key2) (alt2 . key3))))))
         (user (cdr (assoc 'user1 data)))
         (email (cadr (assoc 'email user)))
         (sshkey (cdadr (assoc 'sshkeys user))))
    (list email sshkey))
The thing is one would be (rest (first (rest (assoc ..., the other is (cdadr (assoc ..., which are equivalent in effect (and the latter has way less parens). I dont understand why there's an ideological you should use this or you should use that thing going on. C*R stuff is an abstaction over combinations of FIRST/CAR and REST/CDR, and I dont see why they should be avoided at all. They've got their place, and all this thread is full of arguments backed by mere taste.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: