ChanServ changed the topic of #racket to: The Racket Programming Language -- https://racket-lang.org/ -- https://racket.discourse.group/ -- http://pasterack.org -- logged at https://libera.irclog.whitequark.org/racket/ -- This is the right place to ask for help with DrRacket. Remember to wait around for an answer!
Tuplanolla has quit [Quit: Leaving.]
m5zs7k has quit [Ping timeout: 245 seconds]
m5zs7k has joined #racket
skapata has quit [Remote host closed the connection]
m5zs7k has quit [Ping timeout: 248 seconds]
jA_cOp has joined #racket
m5zs7k has joined #racket
m5zs7k has quit [Ping timeout: 252 seconds]
COMPL_EXE has quit [Read error: Connection reset by peer]
COMPL_EXE has joined #racket
m5zs7k has joined #racket
mwnaylor has quit [Ping timeout: 260 seconds]
Putonlalla has joined #racket
skapata has joined #racket
tnt1 has quit [Ping timeout: 265 seconds]
tnt2 has joined #racket
tnt2 is now known as tnt1
morte has joined #racket
morte has quit [Read error: Connection reset by peer]
tnt2 has joined #racket
tnt1 has quit [Ping timeout: 276 seconds]
tnt2 is now known as tnt1
GreaseMonkey has quit [Ping timeout: 276 seconds]
skapata has quit [Remote host closed the connection]
skapata has joined #racket
Tuplanolla has joined #racket
<energizer> what is the name for the property that 42 has, where (quote 42) produces 42, unlike (quote x), which doesn't?
<bremner> rudybot: eval (quote (lambda (x) x))
<rudybot> bremner: your sandbox is ready
<rudybot> bremner: ; Value: '(lambda (x) x)
<bremner> hrm
jA_cOp has quit [Remote host closed the connection]
GreaseMonkey has joined #racket
jA_cOp has joined #racket
mwnaylor has joined #racket
tnt2 has joined #racket
tnt1 has quit [Ping timeout: 252 seconds]
tnt2 is now known as tnt1
<tonyg> energizer: self-quoting
<tonyg> (perhaps)
<tonyg> energizer: or self-evaluating
<energizer> tonyg: i suppose there's a theory of this kind of thing, involving language levels, functors, whatever....any idea where i can read about these issues from a PLT perspective?
<tonyg> energizer: i'm not sure about that. it's pretty much just a syntax design issue.
<tonyg> energizer: for the language-levels stuff, you might enjoy the 80s research on metacircular interpreters
<tonyg> energizer: e.g. The Reflective Language Black http://pllab.is.ocha.ac.jp/~asai/Black/
Duns_Scrotus has joined #racket
lagash has joined #racket
<energizer> like, it's a little bit magical that numbers pop out of quotes. in some sense there should be a (quote-harder 42) that evaluates to (quote-harder 42) so that the language that the metalanguage's 42 is different from the language's 42, if you get what i mean
<bremner> it seems to be common to racket, elisp, and common lisp
<tonyg> rudybot: eval (quote 123)
<rudybot> tonyg: your sandbox is ready
<rudybot> tonyg: ; Value: 123
<tonyg> rudybot: eval (quote x)
<rudybot> tonyg: ; Value: 'x
<tonyg> Ah. So what's happening here is the *printer* is being magical
<tonyg> In a just world, that'd result in "Value: x"
<tonyg> rudybot: eval (quote "x")
<rudybot> tonyg: ; Value: "x"
<tonyg> energizer: it's not the evaluator or quote mechanism at all: it's the printer!
<tonyg> rudybot: eval (display (quote 123))
<rudybot> tonyg: ; stdout: "123"
<tonyg> rudybot: eval (display (quote x))
<rudybot> tonyg: ; stdout: "x"
<tonyg> rudybot: eval (display (quote "x"))
<rudybot> tonyg: ; stdout: "x"
<tonyg> er
<tonyg> rudybot: eval (write (quote 123))
<rudybot> tonyg: ; stdout: "123"
<tonyg> rudybot: eval (write (quote x))
<rudybot> tonyg: ; stdout: "x"
<tonyg> rudybot: eval (write (quote "x"))
<rudybot> tonyg: ; stdout: "\"x\""
<tonyg> there.
<energizer> rudybot: eval ''1
<rudybot> energizer: your sandbox is ready
<rudybot> energizer: ; Value: ''1
<tonyg> rudybot: eval (write ''1)
<rudybot> tonyg: ; stdout: "(quote 1)"
<tonyg> yuck. the printer is being too clever, printing out the datum in a form that evaluates to the underlying datum rather than as the datum itself
tnt2 has joined #racket
tnt1 has quit [Ping timeout: 248 seconds]
tnt2 is now known as tnt1
tnt2 has joined #racket
tnt1 has quit [Ping timeout: 252 seconds]
tnt2 is now known as tnt1
tnt2 has joined #racket
tnt1 has quit [Ping timeout: 252 seconds]
tnt2 is now known as tnt1