libera/#commonlisp - IRC Chatlog
Search
11:56:43
pl
for writing efficient algorithm, in lisp or otherwise, an algorithm book and detailed specs for implementation and language (CLHS/WSCL) are the go to
14:20:38
jcowan
This Lisper doesn't hate SQL because it's relational, but because it is not relational enough, being full of gaps, unorthogonal, and plagued with things that look relational but make no sense.
14:49:38
aeth
SQL is relational... with a bunch of compromises for real-world performance and usability
14:50:02
aeth
Lisp is functional programming with similar compromises, to the point where many don't even call it FP anymore
15:12:02
jcowan
Yes? What's so efficient about the result of SELECT SUM(price) where product_name = "nonexistent"?
15:16:10
jackdaniel
ACTION gives in to wondering whether the cave empty of dragons is the same the cave empty of knights
15:27:00
jcowan
Admittedly you probably need to take further steps before sending an invoice to the customer demanding a payment of $0.00.
15:30:23
raeda
Taking further steps is still a tall order for most places. I got a bill for $0 a few days ago :p
15:56:01
jcowan
I'd actually rather have a recurring bill for $0 than wonder if the bill got lost in the (e)mail.
16:56:04
jackdaniel
right now the eastern front is stuck, however we make some small progress on the center, under the proud banner "clhs liberation front"
16:59:40
jackdaniel
nij-: clhs won't be "liberated"; its clearly stated by the copyright holder; scymtym started a repository for wscl here: https://github.com/s-expressionists/wscl and new clarifications happen from time to time
17:09:28
nij-
jackdaniel: By liberating clhs I mean to work on DPANS (https://github.com/xach/dpans) and create "another" CLHS.
17:10:35
Josh_2
nij-: I think there have been many attempts to create a new hyperspec, or a complimentary one at least
17:10:49
nij-
Oh wow, seems like some movement has been 'ROLLING! https://github.com/s-expressionists/dpans
17:19:29
phantomics
Hi, a question: is there a way to find out if a symbol is lexically bound? For example: (let ((abc 1)) (lex-boundp 'abc)) => T
17:20:10
Bike
No. I mean, whether it's bound should be obvious from the source code. What are you trying to do? Something in a macro?
17:21:27
jackdaniel
phantomics: lexical variables may be optimized away by the compiler, so there is not even a guarantee that they will be stored (unportably) in the environment
17:21:36
phantomics
Yes, a macro that creates functions that can be used to set a variable value outside of a given scope, this is for output from the April compiler so there are constraints that I wouldn't normally have
17:23:28
jackdaniel
(but during macroexpansion time lexical variables should be accessible in the env)
17:24:46
jackdaniel
yes, and code walkers easily break (because of impementation-specific special forms)
17:25:54
phantomics
In APL you have the ability to either create a local alias of an external variable to a function (changeable without side-effects) or to write a side-effecting statement that changes a variable external to a function, I'm figuring out how to support both of these cases
17:26:06
jackdaniel
phantomics: i.e try this: (defmacro foobar (&body body &environment env) (print env))
20:56:22
recordgroovy
To go against email scrapers on the GitHub... I see no reason why this *can't* be done, right?
21:02:39
_death
interestingly, the glossary entry for "single escape" says "(In the standard readtable, slash is the only single escape.)".. but it's not slash, but backslash (2.1.4.6 has it right)
21:04:30
recordgroovy
I'm targeting it to be readable by humans and asdf, but not by generic scrapers.
21:04:46
recordgroovy
Enough backslashes would make it readable by asdf, but probably not humans without good effort
21:06:12
specbot
Single Escape Character: http://www.lispworks.com/reference/HyperSpec/Body/02_adf.htm
21:09:26
tfeb
ACTION is now planning a tool which will convert code with string literals into code which uses load-time-value in ... interesting ways
21:46:26
lotuseater
I asked myself, when I can do all sorts of symbol names between pipes #\|, how is this done by the reader, cause (get-macro-character #\|) => (values nil nil). also with #\: for reading in keywords. or is this hidden for purpose to not break certain stuff?
21:50:01
jcowan
| is a character of a special type: multiple escape. What it does is not done by the readtable. : is just a token character: its interpretation happens at a higher level.
21:51:45
lotuseater
it was funny some days ago as i showed someone the symbol '|This is a symbol, really, I swear.| :D
21:54:21
jcowan
Yes, it is. But \ and | are not implemented using readtable macro characters. You caan change what characters are used, but the behavior of single and multtiple escape chars is hardwired.
21:54:49
_death
you can (set-syntax-from-char #\| #\a) and then | is no longer a multiple escape character
21:55:39
jcowan
or (set-syntax-from-char #\$ #\|) and then $this is a symbol even though it doesn't look like it.$
21:58:18
White_Flame
of course, the readtable interface isn't always the easiest to extend for every language. Sometimes you need to go raw
21:59:43
jcowan
I should probably have said "non-CL Lisps". CLtL gives the example of !, which is the single escape char for Portable Standard Lisp.
21:59:50
lotuseater
or opening foreign files as streams, reading all lines and break up piece by piece
22:02:24
jcowan
The Compatibility Note at the bottom of https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node188.html explains how | is not a macro character.
22:02:28
lotuseater
so NASA calls you "we need a FORTRAN77 expert" so no problem, now we do Lisp (again)
22:13:32
lotuseater
oh I remembered reading about Symbolics they had their own Lisp implementations for compiling C, Ada, Fortran ^^
22:15:52
jcowan
I found a copy of CLtL2 for $34 at the awesome bookfinder.com (price includes shipping to me, so YMMV)
22:17:13
lotuseater
but also something like Feynman Lectures on Physics, Knuth's Concrete Mathematics or TAoCP, expensive ...
22:18:29
lotuseater
have found in the university lib in the book sale (every for 1€) an old version of The METAFONTbook
22:20:24
lotuseater
as much as a new game, but of course more substance: https://www.zvab.com/servlet/BookDetailsPL?bi=30210395030&searchurl=hl%3Don%26kn%3DConcrete%2BMathematics%26sortby%3D20&cm_sp=snippet-_-srp1-_-title2 (just as an example)
22:26:50
lotuseater
but now I found a big book (from 1996) about AutoLISP, could be helpful for the new potential job and I bet this small industry company still runs on much old stuff
22:35:34
lotuseater
moon-child: or finally doing this Hercules task and building a translator for COBOL to Java/C# or whatever banks/insurances mean is good
22:38:15
hayley
I read that it is made very complicated by having rational arithmetic (bad for Java, fine for CL) and being able to change GOTO targets on the fly (very bad unless you give up and compile basic-block at a time).
22:40:36
lotuseater
or the systems behavior must be changed safely stepping away from those hairy things
22:56:25
etimmons
Xach: UIOP 3.3.6 is on the way. Being tested on the systems not yet covered by CI. Will hopefully be out in a day or two