jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
<no-defun-allowed> a turing complete machine might run JS
<no-defun-allowed> but a smart machine would refuse to run it
<dwrngr`> I think of it like the street slang of programming. It has a consistency to it and you have to keep up somewhat in order to fit in. But it gets in the way in a professional setting :P
<dwrngr`> I guess Typescript is supposed to make it more tolerable there, but personally the limited times I have to use it I've found parenscript to make life a lot simpler
<dwrngr`> different means to different ends I suppose
wheelsucker has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
<aeth> note that even typescript can't give JS a sane type system
<aeth> (And if you wanted to do a TypeScript-like-thing in CL all you'd need is a handful of macros)
siraben has joined #lisp
chipolux has quit [Quit: chipolux]
dwrngr` has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 240 seconds]
kajo has quit [Ping timeout: 265 seconds]
kajo has joined #lisp
stardiviner has joined #lisp
Kundry_Wag has joined #lisp
fowlduck has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
allcr has joined #lisp
jinkies has joined #lisp
quipa_ has joined #lisp
robotoad has quit [Quit: robotoad]
chipolux has joined #lisp
quipa has quit [Ping timeout: 240 seconds]
buffergn0me has joined #lisp
chipolux has quit [Ping timeout: 240 seconds]
smokeink has joined #lisp
sthalik has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Kundry_Wag has joined #lisp
sauvin has joined #lisp
robotoad has joined #lisp
allcr has quit [Quit: Leaving]
quipa_ has quit [Ping timeout: 272 seconds]
pierpa has quit [Quit: Page closed]
<kenster> doing some live lisp programming here: https://youtu.be/l4Uj13QLtpU or https://www.twitch.tv/kingherring
kerrhau has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Bike has quit [Quit: Lost terminal]
Kundry_Wag has quit [Ping timeout: 260 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
\u is now known as meowray
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
Oladon has joined #lisp
<mason> kenster: What editor is that?
<siraben> Emacs!!!
<siraben> mason: The One True Editor
<mason> Is it? No modeline, and I've never seen the left column. Interesting.
<siraben> There is a modeline.
<siraben> The left panel is probably neotree
<mason> Interesting modeline then. SLIME or just editing?
<siraben> You might see "Quit" in the minibuffer time to time when he presses C-g to cancel selection
<siraben> No it's a theme probably
<siraben> s/probably/definitely
<mason> No respect for eighty columns. =scoffs=
chipolux has joined #lisp
<mason> The music is appealing.
Kundry_Wag has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
Kevslinger has quit [Quit: Connection closed for inactivity]
<mason> If you *really* want to achieve flow, though: https://www.youtube.com/watch?v=sBvt0lsoInc
Fare has quit [Ping timeout: 256 seconds]
Fare has joined #lisp
<kenster> mason: sorry
<kenster> spacemacs
<kenster> focused af kek\
<mason> kenster: No worries. heh
<mason> kenster: What was the music?
<kenster> Roex : Dissension
<mason> ty
orivej has joined #lisp
<mason> Hm, spacemacs seems like viper-mode, from their web site.
<housel> Isn't it just viper-mode and a curated set of add-ons?
jkordani has quit [Read error: Connection reset by peer]
<kenster> It has a "layer" system
<kenster> I myself don't use the vim keybindings as I use colemak
<kenster> and vim keybindings are useless by default on colemak
<kenster> but I find the preconfigured distribution to be nice
<no-defun-allowed> cl-naive-bayes is fun
pjb has quit [Remote host closed the connection]
Woodi has joined #lisp
Kundry_Wag has quit [Ping timeout: 248 seconds]
charh has joined #lisp
pjb has joined #lisp
aeth has quit [Ping timeout: 240 seconds]
zianic has joined #lisp
Fare has quit [Ping timeout: 244 seconds]
pjb has quit [Remote host closed the connection]
aeth has joined #lisp
pjb has joined #lisp
pjb has quit [Remote host closed the connection]
_whitelogger has joined #lisp
pjb has joined #lisp
zianic has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
housel has quit [Read error: Connection reset by peer]
housel has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 260 seconds]
chipolux has joined #lisp
Khisanth has quit [Ping timeout: 260 seconds]
smokeink has quit [Ping timeout: 256 seconds]
aindilis has quit [Ping timeout: 240 seconds]
<beach> Good morning everyone!
<no-defun-allowed> afternoon, beach
phax has quit [Remote host closed the connection]
nowhereman_ has quit [Ping timeout: 256 seconds]
nowhereman_ has joined #lisp
chipolux has quit [Ping timeout: 240 seconds]
Khisanth has joined #lisp
chipolux has joined #lisp
chipolux has quit [Ping timeout: 272 seconds]
smokeink has joined #lisp
wxie has joined #lisp
stardiviner has quit [Remote host closed the connection]
renzhi has quit [Ping timeout: 256 seconds]
renzhi has joined #lisp
wxie has quit [Ping timeout: 268 seconds]
wxie has joined #lisp
wxie has quit [Quit: Bye.]
Kundry_Wag has joined #lisp
kenster has quit [Ping timeout: 256 seconds]
orivej has quit [Ping timeout: 248 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
jusss has joined #lisp
jusss has quit [Client Quit]
vlatkoB has joined #lisp
buffergn0me has quit [Ping timeout: 240 seconds]
jusss has joined #lisp
milanj has joined #lisp
jusss has quit [Quit: Mutter: www.mutterirc.com]
<v0|d> beach: is there a way to make a very tiny lisp image that removes all the unused functions removed?
buffergn0me has joined #lisp
<v0|d> I mean, GHC can actually compile programs to a small binary w/o repls or anything but a main().
<Shinmera> it's called tree-shaking. Most implementations don't offer it because people have plenty of RAM and disk space now.
<Shinmera> LispWorks has it, if I remember correctly
<edgar-rft> v0|d: it's called a "tree-shaker" what you're looking for
<v0|d> interesting:)
<aeth> I think one problem is that large Lisp programs will probably use most of the language, especially if they're using dependencies that can be very stylistically different from each other.
<edgar-rft> it sounds easier than it is because you need to remove all unused implementation-internals, too
<aeth> Right, the implementation internals might also use stuff like e.g. structure-objects even if you don't use any
<v0|d> any ideas on the size of the binaries?
<Shinmera> SBCL with core compression on produces binaries around the 10MB range.
<v0|d> Shinmera: lispworks is closed source, right? can't see the implementation.
<edgar-rft> write an assembler in CL and you'' get really small binaries
<Shinmera> It is a commercial implementation.
<v0|d> Shinmera: I had ecl binaries under 1MB.
<MichaelRaskin> Do they link against libecl.so, though?
<v0|d> edgar-rft: how so?
<v0|d> edgar-rft: would you mind elaborating.
<v0|d> MichaelRaskin: nah, i can do static, strip etc.
smokeink has quit [Ping timeout: 268 seconds]
<MichaelRaskin> Nice
<edgar-rft> v0|d: how so what? tree shaking implementation internals or writing a micro assembler
<v0|d> edgar-rft: first one is interesting.
<edgar-rft> every ANSI CL function must be defined from something. This "something" must be removed from the final binary, too. What "something" is depends on the Common Lisp implementation.
<jackdaniel> edgar-rft: why it needs to be removed?
<jackdaniel> (example: small forth interpreter written in C used to bootstrap some functions and target compiler may be a part of a final runtime too)
<edgar-rft> jackdaniel: because you can't reduce the size of a binary by *adding* stuff
FreeBirdLjj has joined #lisp
<jackdaniel> hm, I must miss a context, I thought it is a general statement
<edgar-rft> the question was howto reduce the size of a binary and the discussion was howto write a treeshaker
<jackdaniel> OK, thank you (and sorry for being lazy with backlog)
reu has quit [Ping timeout: 265 seconds]
<edgar-rft> jackdaniel: but it was said that ECL produces small binaries, maybe you're the right man to help :-)
<jackdaniel> sure, you can build a minimal statically linked program in around ~200KB
<edgar-rft> v0|d: ^^
<jackdaniel> of course such runtime would only carry bytecodes compiler (but binary itself may be compiled to native beforehand), no ASDF etc
<jackdaniel> needless to say, you may add module loading on demand (if present in form of fas files) - that way you may add compiled native module to a runtime
<jackdaniel> [like asdf, C compiler etc)
makomo has joined #lisp
<jackdaniel> McCLIM aligning text to right, wrapping by word against a margin and aligned vertically *above* bottom margin: http://i.imgur.com/Vbnr6Qx.png
JuanDaugherty has joined #lisp
argoneus has quit [Quit: No Ping reply in 180 seconds.]
argoneus has joined #lisp
iskander has quit [Ping timeout: 240 seconds]
buffergn0me has quit [Ping timeout: 240 seconds]
makomo has quit [Ping timeout: 244 seconds]
dddddd has quit [Remote host closed the connection]
jinkies has quit [Ping timeout: 240 seconds]
JuanDaugherty has quit [Quit: Exeunt]
angavrilov has joined #lisp
funnel has quit [Remote host closed the connection]
funnel has joined #lisp
ebzzry has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
funnel has quit [Ping timeout: 256 seconds]
funnel has joined #lisp
edgar-rft has quit [Remote host closed the connection]
lel has quit [Ping timeout: 260 seconds]
lel has joined #lisp
funnel has quit [Ping timeout: 272 seconds]
azimut has quit [Ping timeout: 260 seconds]
funnel has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
mn3m has joined #lisp
smokeink has joined #lisp
mn3m has quit [Quit: mn3m]
mn3m has joined #lisp
azimut has joined #lisp
ebzzry has joined #lisp
Inline has quit [Quit: Leaving]
smokeink has quit [Remote host closed the connection]
robotoad has quit [Quit: robotoad]
ebzzry has quit [Read error: Connection reset by peer]
Inline has joined #lisp
robotoad has joined #lisp
schweers has joined #lisp
varjag has joined #lisp
varjag has quit [Client Quit]
random-nick has joined #lisp
varjag has joined #lisp
smokeink has joined #lisp
smokeink has quit [Remote host closed the connection]
funnel has quit [Ping timeout: 240 seconds]
ft has quit [Remote host closed the connection]
mn3m has quit [Ping timeout: 272 seconds]
robotoad has quit [Quit: robotoad]
mkolenda has quit [Remote host closed the connection]
mkolenda has joined #lisp
dddddd has joined #lisp
makomo has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
Kundry_Wag has joined #lisp
schweers has quit [Ping timeout: 240 seconds]
vlatkoB_ has joined #lisp
makomo has quit [Ping timeout: 272 seconds]
edgar-rft has joined #lisp
hvxgr_ has joined #lisp
vlatkoB has quit [Ping timeout: 272 seconds]
makomo has joined #lisp
funnel has joined #lisp
Bike has joined #lisp
kamog has joined #lisp
thinkpad has quit [Quit: lawl]
charh has quit [Ping timeout: 272 seconds]
thinkpad has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
Kevslinger has joined #lisp
mb01 has joined #lisp
orivej has joined #lisp
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
Inline has quit [Quit: Leaving]
pjb has joined #lisp
NoNumber has joined #lisp
Inline has joined #lisp
Inline has quit [Remote host closed the connection]
Inline has joined #lisp
Inline has quit [Remote host closed the connection]
Inline has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
thinkpad has quit [Quit: lawl]
thinkpad has joined #lisp
trafaret1 has joined #lisp
<trafaret1> hi there
<trafaret1> such quick question
<trafaret1> is it possible with stat and lisp beat the bookies?
<beach> I don't even parse your question.
<trafaret1> I mean is it possible with statistic and lisp make bookies cry?
<random-nick> what are bookies
<beach> No more nor less than with statistics and any other programming language.
<beach> I am guessing bookmakers.
<trafaret1> bookmakers
<trafaret1> I guess lisp better choice
<trafaret1> because it good at processing lists of information
wigust has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #lisp
funnel has quit [Ping timeout: 248 seconds]
<pierpal> you aren't getting any replies because we are all busy making bookies cry
funnel has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
Kundry_Wag has joined #lisp
ebrasca has quit [Remote host closed the connection]
<trafaret1> pierpal: share your methods dont' be greedy
<trafaret1> :)
<pierpal> I could but then I'd have to kill you
<trafaret1> pierpal: Stallman don't be proud of you
<pierpal> let's move to lispcafe
<trafaret1> pierpal: lispcave
<pierpal> anyway I recommend you this book https://www.amazon.it/dp/B004IASVJK it's highly educational, as are the other books by the same author.
NoNumber has quit [Ping timeout: 260 seconds]
omilu has joined #lisp
quipa has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
nika has joined #lisp
thinkpad has quit [Quit: lawl]
thinkpad has joined #lisp
Kundry_Wag has quit [Ping timeout: 248 seconds]
ym has quit [Quit: Leaving]
kenster has joined #lisp
nanoz has joined #lisp
kerrhau has quit [Ping timeout: 256 seconds]
HighMemoryDaemon has joined #lisp
kirkwood has quit [Remote host closed the connection]
<HighMemoryDaemon> What's a good site for pasting my Lisp code to share a link? Hastebin, my go-to, seems to be down.
Xach has quit [Quit: leaving]
Xach has joined #lisp
Oladon has joined #lisp
<pjb> yes, hastebin or github gists.
thinkpad has quit [Quit: lawl]
thinkpad has joined #lisp
<mason> bpaste.net is my favourite
<mason> or cat your-file.lisp | nc termbin.com 9999
mathrick has quit [Ping timeout: 276 seconds]
Kundry_Wag has joined #lisp
mathrick has joined #lisp
<kilimanjaro> what's the idiomatic way to get just the first value from a call which returns multiple values
<kilimanjaro> e.g. i have a function which ends with (gethash foo frob), but i don't want the user to see the second value
<beach> The user won't see it unless the user is using the REPL.
<beach> But you can use nth-value.
<beach> clhs nth-value
<kilimanjaro> right, thanks
<beach> Anytime.
<kenster> Streaming some lisp programming: https://youtu.be/ZYdsxGa78q4 or https://www.twitch.tv/kingherring
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
HighMemoryDaemon has quit [Remote host closed the connection]
Fare has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 240 seconds]
buffergn0me has joined #lisp
sjl has joined #lisp
buffergn0me has quit [Ping timeout: 240 seconds]
MoziM has joined #lisp
captgector has quit [Read error: Connection reset by peer]
captgector has joined #lisp
Kundry_Wag has joined #lisp
<pjb> kilimanjaro: (values (truncate 10 3)) #| --> 3 |#
Fare has quit [Ping timeout: 240 seconds]
ft has joined #lisp
Guest5800_ has joined #lisp
buffergn0me has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
JuanDaugherty has joined #lisp
Kundry_Wag has joined #lisp
jinkies has joined #lisp
Fare has joined #lisp
on_ion has joined #lisp
buffergn0me has quit [Ping timeout: 276 seconds]
light2yellow has quit [Quit: rebooting]
wigust has quit [Ping timeout: 240 seconds]
jinkies has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
Oladon has quit [Quit: Leaving.]
jinkies has joined #lisp
lnostdal has quit [Quit: https://www.Quanto.ga/]
emaczen has joined #lisp
<emaczen> How do you tell hunchentoot to serve an image with define-easy-handler? To serve HTML the body is just an HTML string, and so I am confused about how you would serve an image?
shlecta has joined #lisp
mindCrime_ has joined #lisp
mindCrime has quit [Ping timeout: 240 seconds]
mindCrime__ has joined #lisp
ym has joined #lisp
renzhi has quit [Ping timeout: 256 seconds]
kamog has quit [Remote host closed the connection]
mindCrime_ has quit [Ping timeout: 260 seconds]
<Demosthenex> ok, wait. in CL (cdr nil) is nil instead of throwing an error? maybe it's my time spent in scheme, but i thought that'd throw an error
buffergn0me has joined #lisp
<pjb> Demosthenex: that's correct.
<loli> in CL you can even do (car nil)
rozenglass has joined #lisp
robotoad has joined #lisp
<Demosthenex> yeah, i just expected an error that i didn't give it a cell
<Demosthenex> i always wrap assoc calls in (or (assoc :key alist) '(nil . nil)) so that i can safely cdr a default value when no key exists
<Demosthenex> because i expect cdr to throw an exception if it doesn't receive a cons cell
<Demosthenex> pjb: epic. simply epic.
pjb has left #lisp ["ERC (IRC client for Emacs 25.1.1)"]
pjb has joined #lisp
<Demosthenex> anyway, yeah, i'm enjoying common lisp. working with my son and trying to show him assoc lists.... but i guess we don't need that or for association lists ;]
<pjb> For example (nth 42 '(a b c)) #| --> nil |#
<pjb> But (elt '(a b c) 42) #| ERROR: 42 is not a valid sequence index for (a b c) |#
<pjb> because elt works on vectors too: (elt #(a b c) 42).
kerrhau has joined #lisp
<Demosthenex> just amused that i was trying to show him a "TADAAAA" moment where it'd throw an error when we searched for a bad key, and.... instead it just returned nil. of course i was surprised l;]
<Bike> assoc additionally allows nil elements, so ((a . b) nil (c . d)) is a valid alist.
JuanDaugherty has quit [Quit: Exeunt]
<pjb> Demosthenex: but since nil is both false, empty list, and no value, this is there reason why you can write (or (cdr (assoc key a-list)) "Hello")
<pjb> ie. easily provide a default value if the value is absent or null.
<pjb> Which doesn't prevent you to distinguish those cases (assoc key a-list) is true if it's present as `(,key . nil)
buffergn0me has quit [Ping timeout: 240 seconds]
<Demosthenex> yeah, i can still use the or for a nonnil default value
<Demosthenex> but here, nil is enough
<Demosthenex> just checking whether an exit is blocked in a room. he's chosen to keep his map data in a 2d array of alists
<Demosthenex> i may show him structures soon too ;]
shlecta has quit [Read error: Connection reset by peer]
slyrus2 has joined #lisp
shlecta has joined #lisp
emacsomancer has joined #lisp
slyrus has quit [Ping timeout: 240 seconds]
slyrus1 is now known as 17SAAN4EB
sjl has quit [Quit: WeeChat 2.2-dev]
test1600 has joined #lisp
renzhi has joined #lisp
JuanDaugherty has joined #lisp
JuanDaugherty has quit [Quit: Exeunt]
aindilis has joined #lisp
emacsomancer has quit [Quit: b]
nika has quit [Quit: Leaving...]
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
robotoad_ has joined #lisp
light2yellow has joined #lisp
robotoad has quit [Ping timeout: 268 seconds]
robotoad_ has quit [Read error: Connection reset by peer]
robotoad has joined #lisp
Kundry_Wag has joined #lisp
trafaret1 has left #lisp ["ERC (IRC client for Emacs 25.2.2)"]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
narendraj9 has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
FreeBirdLjj has quit [Ping timeout: 248 seconds]
<kenster> hey, how do I convert a non list argument into a list, and evaluate that list?
<kenster> i.e. (:id (get-id blah)) -> '(:id (get-id blah)) -> '(:id 1)
emacsomancer has joined #lisp
<kenster> I can't use eval because I need to use the lexical scope
<Xach> you can't go from a symbol to the value of that symbol's lexical binding.
<MichaelRaskin> Without implementation-specific magic at least
<kenster> fug
<kenster> I wanted to apply arguments to make-instance
<Bike> if you explain your problem in more detail, it's possible someone could come up with another solution.
<kenster> I'm doing an unwind-protect on a class initialization
<kenster> I call it with-foreign-class
<kenster> the first argument is the class and the second the params you want to pass into make-instance
<Bike> with-foreign-class is a macro?
<kenster> yes
<kenster> (,params ',(second spec)
<kenster> (apply 'make-instance ,c-class-name ,params)
<kenster> but ,params is the quoted form of '
<kenster> (:id (gensym "HSESSION-")
<kenster> :in-progress t
<kenster> :content-file (make-instance 'hosted-content-file :id (b32c:b32c-decode content-id) :file-name filename))
<kenster> so the make-instance call gets the quoted values
iskander has joined #lisp
<Bike> Could you paste an example with-foreign-class form? If it's very long, on a pastebin site, please.
<kenster> sure
razzy has joined #lisp
narendraj9 has quit [Ping timeout: 248 seconds]
<kenster> Bike: ^
fikka has joined #lisp
<Bike> I think you may be somewhat confused about how macros work.
<kenster> okay
<Bike> (defmacro with-foreign-class ((class-name &rest params) instance &body body) `(let ((,instance nil)) (unwind-protect-foreign-class ,instance (setf ,instance (make-instance ,class-name ,@params))) ,@body))) might be what you want?
<Bike> You're the one doing quotation there, like in ',(second spec), but you don't actually want to, so...
<kenster> hmmm
<Bike> oh, and then you'd use it like (with-foreign-class (hosting-session :id (gensym ..) :in-progress t ...) ...)
<kenster> very nice
<kenster> I didn't really know you could have it like that
<kenster> destructuring spec in the args
<Bike> yeah, macro lambda lists can be nested like that.
<kenster> wew
<Bike> Anyway, the point is that you don't need to bind the params to a variable, or quote them, or anything.
<Bike> If it gets confusing, try writing out a macro form you'd like to have, and then manually write what the expansion ought to be.
<kenster> I know that
<Bike> In this case, I think it's intuitive that we'd want a simple make-instance form like that.
<kenster> I assembled the args like that because I didn't know about the args in the macro definition
<kenster> so I manually car/cdr'd that
<kenster> and it was messy
<Bike> well, tha'ts not really the hproblem part
<Bike> you could have (defmacro with-foreign-class (spec instance &body body) `(bla bla bla (make-instance ,(first spec) ,@(second specd))))
<Bike> second spec
<kenster> ah right
<Bike> the point is more that you had these let bindings with quotes and all
<kenster> yeah I tend to get confused about that
<kenster> thanks Bike!
fikka has quit [Ping timeout: 240 seconds]
<Bike> no problem
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
charh has joined #lisp
Kundry_Wag has quit [Ping timeout: 268 seconds]
nanoz has quit [Ping timeout: 272 seconds]
X-Scale has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
emacsoma` has quit [Ping timeout: 244 seconds]
pierpal has quit [Quit: Poof]
random-nick has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
random-nick has joined #lisp
fikka has joined #lisp
kajo has joined #lisp
slyrus1 has joined #lisp
17SAAN4EB is now known as slyrus
fikka has quit [Ping timeout: 272 seconds]
X-Scale has joined #lisp
vlatkoB_ has quit [Remote host closed the connection]
emacsomancer has quit [Read error: No route to host]
pierpa has joined #lisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #lisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #lisp
fouric has quit [Quit: WeeChat 2.1]
test1600 has quit [Quit: Leaving]
emacsomancer has joined #lisp
kerrhau has quit [Remote host closed the connection]
kerrhau has joined #lisp
quipa has quit [Quit: Leaving]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
White_Flame has quit [Ping timeout: 240 seconds]
White_Flame has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
angavrilov has quit [Remote host closed the connection]
allcr has joined #lisp
shlecta has quit [Ping timeout: 240 seconds]
pierpal has quit [Ping timeout: 244 seconds]
emacsoma` has joined #lisp
emacsoma` has quit [Remote host closed the connection]
emacsoma` has joined #lisp
<AeroNotix> can the setf place be a variable? E.g. (setf (foo bar) value) where foo and bar are symbols which have the values of what I want setf to operate on?
<Shinmera> foo must either be the name of a setf-expander, or constitute the function name (setf foo)
<Shinmera> So: no
<AeroNotix> drats
<Shinmera> If all your possible foo places are implemented via functions rather than setf expanders you can simply instead do (funcall `(setf ,foo) value bar)
<AeroNotix> Yes, they're implemented as functions
<AeroNotix> thanks
fikka has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
equwal has quit [Ping timeout: 248 seconds]
<pjb> AeroNotix: you can (setf (values foo bar) (values 1 2))
<pjb> AeroNotix: if you insist, you can (setf (my-variables foo bar) value)
<pjb> AeroNotix: the trick is to understand the basic feature of lisp which is taught in the 2nd part of the 5 minute introduction to lisp.
<Shinmera> pjb: He means that foo should denote the place to pass bar and the value to, not foo being another variable to set.
<pjb> That is: ALL lisp expressions are lists whose FIRST element is the name of the operator!
<Shinmera> And that's also wrong.
<Shinmera> All lisp /forms/ are lists whose first element is the operator
<pjb> Oh, yes.
<pjb> Then it can be written (funcall `(setf ,foo) value bar)
<pjb> IF foo refers to a setf function.
<pjb> otherwise: (funcall foo value bar) if foo is bound to the writer function.
equwal has joined #lisp
equwal has quit [Remote host closed the connection]
<pjb> There may be a way to macroexpand if foo is bound to the name of a macro.
equwal has joined #lisp
<pjb> And finally if it's bound to the name of an implementation specific accessor, then you would have to use eval, which will be difficult.
<random-nick> Shinmera: can't forms also be symbols and self-evaluating objects?
<Shinmera> Yes
<pjb> random-nick: there's no difference between the terms form, sexp, data, lisp object, expression, etc.
<pjb> It's all the same.
<pjb> (quote '(1 2 3)) (eval '(1 2 3))
<Shinmera> there is a difference.
<pjb> Nope.
<Shinmera> clhs glossary/form
<Shinmera> clhs glossary/expression
<pjb> The glossary is not normative.
<pjb> And furthermore, the CL implementation don't know anything about the glossary.
<Shinmera> But it defines terms that we go by.
<pjb> Again, see my code!
<Shinmera> If you want to argue semantics, please do it somewhere else.
<pjb> I'm starting to be fed up with natural languages and their idiosyncrasies.
<no-defun-allowed> lists set up correctly can be used as code and data
<no-defun-allowed> most of the meaning is just intention
<pjb> lists and atoms.
<no-defun-allowed> and atoms, yes those too. the only real difference between code/data is how they are used.
<pjb> no-defun-allowed: I would even argue against that: (let ((x #(1 2 3))) (identity x) (eval x)) the same lisp object is being used as data AND as code!
<pjb> no-defun-allowed: see it more like the dual nature of physics: particule & probability wave function.
<no-defun-allowed> oh damn
razzy has quit [Remote host closed the connection]
razzy has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
jinkies has quit [Ping timeout: 265 seconds]
v0|d has quit [Ping timeout: 240 seconds]
acolarh has quit [Ping timeout: 248 seconds]
varjag has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
sjl has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
<White_Flame> even more literally: (defmacro defun-with-source (name params &body body) `(progn (register-source-code ',name ',params ',body) (defun ,name ,params ,@body)))
asarch has joined #lisp
cogbog has joined #lisp
cogbog has left #lisp ["rcirc on GNU Emacs 25.3.1"]
makomo has quit [Ping timeout: 268 seconds]
danielxvu has joined #lisp