libera/#commonlisp - IRC Chatlog
Search
0:11:29
aeth
masinter: the only reason I don't do that is because nobody puts hyphens in domain names but everybody puts hyphens in project names... So if I did that everywhere, it would double my domain costs.
0:12:14
aeth
"com.example" will actually show up as just "example" afaik, but it gets ugly when you use two words without a hyphen in the domain.
0:13:11
kakuhen
aeth: sure, that's exactly my point: the confusion seems to come from nil representing both the (generalized) boolean false and the empty list. But otherwise, the design is not very counterintuitive to me
0:13:17
aeth
masinter: well, no, because now the owner of example-regular-expression.com (which might actually be a site, don't go there, I'm making it up, poorly) will be mad at you if you express example.com/regular-expression as com.example-regular-expression
0:13:26
aeth
masinter: the point is to be unambiguous after all and now you just introduced ambiguity again
0:13:50
kakuhen
as for interchange of data between Common Lisp and languages that distinguish a false value and a null value, I agree it's annoying deciding how to designate this kind of data
0:16:11
aeth
it gets even trickier if you want to represent {"foo" : 42} as (:foo 42) because now you have nil that could be {}, [], false, or null (but please don't let it be null)
0:24:29
masinter
and one has first and last name, and the other has family and given name, you have to work hard to disambiguate
2:25:53
jcowan
Guile has (), #f, and #nil so that it can handle both the Elisp/CL system and the Scheme system. Specifically, #nil and #f are both false, and #nil and () are both empty lists.
2:26:52
jcowan
So you shouldn't make inquiries like (eq x nil), instead you should use (not x) or (null x).