freenode/#lisp - IRC Chatlog
Search
16:17:00
jackdaniel
oh oh, some polish words in unicode names: #\LATIN_SMALL_LETTER_S_WITH_OGONEK :-)
16:20:11
MichaelRaskin
I am not able to suppress perceiving it as «little fire/flame» instead of «little tail» anyway
17:48:03
theseb
Why is progn considered a special form? I don't see any deviations from the standard eval rules with it
17:51:50
specbot
Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm
17:53:16
Bike
i suppose that that's it, though. versus (defun progn (&rest args) (first (last args)))
17:58:18
Bike
you could define progn like this and then have a smart enough inliner to handle it efficiently
18:05:56
pjb
theseb: note that the notion of special form is rather useless: it CAN be implemented as a macro!
18:06:14
pjb
theseb: also, any CL macro CAN actually be implemented as a special form by your implementation!
18:06:34
pjb
theseb: also, any CL function call CAN actually be open-coded, which is like being a special form!
18:06:48
Bike
lisp has a multiple value return mechanism. it should be explained somewhere around the evaluation semantics you're presumably reading.
18:07:23
theseb
pjb: in my understanding one of the purposes of macros is to implement special forms
18:08:40
pjb
theseb: however, the CL implementation still has to have some fundamental constructs. Note that more than the specified special forms are needed as fundamental constructs. For example, (setf gethash), apply, etc.
18:09:29
theseb
phoe: i was thinking about your clarification about lisp not being a mystical magical software silver bullet....i still think you're right.....I think Brook's "No Silver Bullet" principle is also right....software seems to have "essential complexity" you can't get rid of....kinda reminds me of the Halting theorem....basically we may never be able to get Moore's law type improvements in software development...i can't see it
18:09:57
Bike
that is not what the halting theorem means, and moore's law is already coming to an end because it's pretty hard to make transistors smaller than an atom.
18:11:45
theseb
Bike: yes..i know all about the Halting Theorem...i'm just saying the No Silver Bullet feels similar in flavor to the Halting Theorem....they both address limitations and complexity in some sense
18:11:48
Bike
you could implement (multiple-value-call f ...) as `(apply f (apply append ,@(mapcar (lambda (form) `(multiple-value-list ,form)) ...)))
18:12:15
pjb
Bike: the CL implementation can trivially define a macro, expanding to implementation specific things.
18:12:57
Bike
theseb: you should try to quantify any similarity so that this analogy has value more than a feeling.
18:14:18
_death
special operator is like calling something an axiom.. but clhs also allows implementors to use other axioms and treat the operator as a theorem
18:18:33
theseb
Bike: ok you asked for it...;)... One way to characterize the Halting Theorem is in terms of Gregory Chaitin's or Kolmogorov's definition of complexity..."You can't get a 20 lb theorem from 10 lbs of axioms!"....being able to bang out extremely complex programs with some magic bullet seems unlikely because it either...1. Suggests a way to violate Kolmogorov complexity or 2. Our brains are acting very "trans-computational" and doi
18:19:25
Bike
but i didn't actually mean for you to try to explain it here. it is off topic, after all
18:27:51
theseb
Does anyone have any feel good CL stories where some team created an awesome DSL to handle a very complex problem that blew the pants off the competition?
18:29:08
theseb
it be some sort of consolation since i can't have that lisp is a "silver bullet" anymore
18:42:37
p_l
also, I think in ECLM/ELS in Amsterdam (2012) there was a presentation on using DSL and a compiler written in CL to generate much more efficient Cuda/OpenCL code
23:22:50
moon-child
how come (*) and (+) are usually well-defined (to multiplicative and additive identities), but (/) and (-) produce an error?
23:24:49
yottabyte
has anyone gotten drakma to work with windows 10 here? when I try e.g. (drakma:http-request "http://www.lisp.org/index.html") I get https://pastebin.com/MNLZeyS3
23:25:26
yottabyte
I tried to do some searching and it seems to be a CL+SSL error, but all I did was quickload drakma
23:26:15
aeth
moon-child: probably because / and - are actually two functions, depending on the lengths of the arguments provided, i.e. 1 argument vs. 2 or more arguments
23:27:21
moon-child
otoh, they still have well-defined identities, that are consistent for both forms
23:27:40
aeth
if they were defined like + and * then there would be no difference with (- and +) or (* and /) for 0 and 1 arg calls and there would need to be separate functions for negation and inverse
23:28:39
pjb
moon-child: the mathematical principle, is that (op) returns the neutral element for op. What is the neutral element of / or of - ?
23:29:21
aeth
(/ x) is (/ 1 x) instead of the "expected" x if it were just an extension of / for 2+ args and (- x) is (* -1 x) instead of the "expected" x if it were just an extension of - for 2+ args.
23:29:51
moon-child
pjb: ahh, I see. So it's not because there are separate forms, but because parameter order matters
23:30:22
pjb
moon-child: well, at least for neutral elements. an operation can be anti-commutative, but the neutral element should still commute.
23:30:29
aeth
or I suppose you could define (- x) as (- 0 x) instead so it parallels / more. That is, (- x) is (- (+) x) and (/ x) is (/ (*) x)