(defun server-link (&optional (server +DEFAULT-SERVER+) (domain "4chan.org"))
"Return link to a suitable HTTP link to the domain/ip"
(concatenate 'string
"http://" server "." domain))
(defun thread-link (&key (id nil) (server +DEFAULT-SERVER+)
(bbs +DEFAULT-BOARD+) (post-number ""))
(concatenate 'string
(server-link server)
(if id
(concatenate 'string
"read/" bbs "/" id "/"
(num-to-str post-number))
(concatenate 'string "/" bbs))))
>>13
Don't think so, besides this is a simple and user-fixable problem, so it's unlikely it would get fixed, however there is an unofficial CLtL3 effort.
Ok as someone new to lispy languages, I recently discovered Clojure and I was very impressed with what it had to offer. Would it be a bad idea idea to skip out on CL/Scheme and jump right into the lisp world with Clojure? As far as functional languages go I only have experience with Haskell. I'm interested in opinions on this.
It just doesn't fucking matter. Learn Lisp, learn Scheme, learn Clojure, or learn Haskell. Continually jumping to the coolest newest language isn't going to help you at all--what matters is actually understandingone of them. Then move on to the next.
Name:
Anonymous2010-02-24 14:59
>>20
When people have never done functional programming before, I ususally tell them to learn Scheme first because it doesn't require you to fuck around with the world's third most complicated type system. But since you already know some Haskell, Clojure will make plenty of sense to you. So go right ahread.
>>20
Clojure is lispy, but it's different from CL and Scheme in many ways. I think you should try other Lisps too, but for now you'd probably be fine with it. I started by learning Scheme from SICP and R5RS, but eventually ended up learning CL, and to this day it's my favorite language, however for some people CL might be harder to learn in one go.
>>20
Clojure is lispy, but it's different from CL and Scheme in many ways. I think you should try other Lisps too, but for now you'd probably be fine with it. I started by learning Scheme from SICP and R5RS, but eventually ended up learning CL, and to this day it's my favorite language, however for some people CL might be harder to learn in one go.
Clojure is absolute shit. No reader macros except the shitty default ones for useless data structures like arrays and hash maps, using ~ instead of , in macros, useless STM, (it's been proven not to work! WHY IMPLEMENT IT ANYWAY?!) no proper TCO, broken optimization pragmas, slow, shity, ugly, no proper LOOP or FORMAT. I can go on and on.
Also, defn? Really? Can't rite one extra letter huh Dick Hickey?
Name:
Anonymous2010-02-24 18:36
>>25 Also, defn? Really? Can't rite one extra letter huh Dick Hickey?
CL isn't any better if we are going to argue about naming. defun, defmacro, defgeneric... Is it so hard to write define, define-macro, define-generic?
>>27
I actually understand memq, memv, assq, etc. because they are specialisations of slightly more sensibly named functions like member and assoc, but I will never understand why they chose RPLACA and RPLACD.
>>28,30
I'm just happy using (setf (car x) y) and (setf (cdr x) y), they expand to rplaca/rplacd anyway. I don't remember the exact naming rationale of RPLACA/RPLACD, but I think it was something along the lines of ``RePLAce Contents of the Accumulator/Decrement part.'', which do make some sense if you think of car/cdr's naming, albeit they're both historical artifacts, not that having a better name would be of much benefit: FIRST/REST make sense when you're talking of lists, but cons cells are more general than that (an efficient stucture holding 2 arbitrary pointers can be used for many things).
we supply all kinds of bamboo and wooden products,such as bamboo garden products and bamboo torches and Bamboo Bird House&Feeder and wooden flooring and wooden mirror and so on,we supply high quality & low http://www.china-torches.com/
Name:
Anonymous2010-03-18 22:59
>>31
Generalized places are even more niggling, IMO. There's no clear treatment of them anywhere (even ANSI CL smoothes over them!)
>>33
In ANSI CL, SETF is a macro, and you have various possibilities of extending it in any way you'd want (functional extension, as a macro, own setf expanders, symbol macros, etc). SETF is maybe too extensible, which is why some people have trouble with it. Every SETF will eventually expand to a lower level API, which performs the actual operation. It's a bit more tricky because SETQ which is supposed to be a low-level operator(special form) will expand to SETF if the value to be setted is a symbol macro, and the SETF itself will expand to something else.