freenode/#lisp - IRC Chatlog
Search
14:26:11
mfiano
My game math library is roughly 15kloc, which is included in Quicklisp, so subtract that and others from that 1/6 figure
14:26:34
Nilby
Also, for most people the code checked out in the repo is only the code that survived. There's usually a lot of dead code in the git history.
17:04:10
em
I'm no expert in coding AT ALL. I'm barely a hobbyist and I struggle a lot, but I think it's crazy to poke fun at lisp for all its parentheses when other languages end with stuff that looks like this: ;});});
17:06:30
beach
It is. But then, people need to defend their (often wrong) choices in life, or else their heads will blow up.
17:18:50
Nilby
Making fun of Lisp for parentheses seem like making fun of an elephant for it's trunk. It looks funnny, but it's an awesome feature. One could just make of it being old and having funny names, which is legit.
17:28:09
thmprover
OK, I'm arguing with myself about literate programming in Common Lisp. I'm writing some educational numerical analysis, and I'd like to explain how to derive the code from mathematics. There are two ways I can see how to write "literate lisp": (1) like vanilla literate programming (as code snippets in a PDF surrounded by commentary), (2) encoding the comments and derivations as S-expressions.
17:36:58
Nilby
I'd do the second way, but it seems like it could be distracting from writing to set up. Anyway there's things like cl-pdf, ccldoc, or CommonDoc/parenml. But to a fool like me, math makes more sense in Lisp than in math notation.
17:58:59
thmprover
Hmm...I wish there were more examples on how to use parenml, though...or some documentation...
20:11:49
Josh_2
I just had to use eval to get rid of a ' so that I get consistent output between a list generated like `( ..) and a list generated like `'(.. )
20:13:31
Josh_2
well I tried just using (rest list) as the arg but the returned results werent consistent
20:17:14
Josh_2
when I get rid of eval I get varying results between the `( ) and `'( ) lists, I tried using something like (rest list) when (first list) was eql to 'quote
20:18:09
Josh_2
I'm basically tryna write a compiler-macro to automatically compile templates when they are constants ie `'( ) lists
20:18:33
jackdaniel
so however you want to access the list, you should start from this representation
20:21:15
aeth
I think this is the test for quoted and you then separately have to test the cadr if you want its contents to be something specific: (defun quoted-p (form) (and (listp form) (eql (car form) 'quote) (endp (cddr form))))
20:21:29
jackdaniel
its late, I might have forgot some parenthesis, but I hope you will figure this out
20:21:47
aeth
Note, though that (quoted-p ''a) and (quoted-p `'a) would be T but (quoted-p 'a) would not because the REPL is evaluating the 'a input once
20:24:56
aeth
and (quoted-p '`a) would also be false even though quasiquoting like that (no unquoting) is effectively the same as quoting.
20:26:30
Josh_2
I'm not sure why I have to use (first ..) to get a result equiv to an input that is unquoted
20:26:42
aeth
I guess if you want it to match in style you would replace CAR with FIRSt and CDDR with (rest (rest ...))
20:27:35
aeth
I personally tend to use the CXRs for syntax where DESTRUCTURING-BIND isn't desirable (it usually is, since errors are good, but in this case, it would error instead of returning NIL)
20:39:35
jackdaniel
yes, it is (quote foo) ; for my defense, I've added a disclaimer that it is late :)
21:04:04
aeth
my bad, it's (defun quoted-p (form) (and (listp form) (eql (car form) 'quote) (cdr form) (endp (cddr form))))
21:04:42
aeth
But you have to try really hard to actually get that edge case because e.g. (quote) is an error