Fernando-Basso has quit [Remote host closed the connection]
mSSM has quit [Ping timeout: 252 seconds]
<caltelt_>
Just randomly browsing the typed/racket docs, saw this: (struct employee person ([schrute-bucks : Natural]) #:prefab)
<caltelt_>
got a chuckle out of me :D
vraid has quit [Ping timeout: 268 seconds]
<nisstyre>
caltelt_: I don't get it
<nisstyre>
it's defining it as a Natural number?
<nisstyre>
is it some German inside joke?
<nisstyre>
ohh the office
caltelt_ has quit [Ping timeout: 246 seconds]
<ZombieChicken>
anyone know why the racket docs stored in $HOME seem to link to the docs in /usr? It keeps messing me up since the two aren't entirely equal
Fare has joined #racket
aeth has quit [Ping timeout: 246 seconds]
johnjay has joined #racket
aeth has joined #racket
vraid has joined #racket
caltelt has joined #racket
pera has quit [Ping timeout: 250 seconds]
fmu has quit [Ping timeout: 268 seconds]
Fare has quit [Ping timeout: 246 seconds]
<caltelt>
nisstyre: yea, it's the section on Prefab, a bunch of Office references
amz3 has quit [Ping timeout: 246 seconds]
widp___ has joined #racket
widp___ has quit [Ping timeout: 250 seconds]
Fare has joined #racket
ym555 has quit [Ping timeout: 255 seconds]
dddddd has quit [Read error: Connection reset by peer]
pera has joined #racket
_whitelogger has joined #racket
tilpner has quit [Remote host closed the connection]
tilpner_ has joined #racket
Sgeo_ has joined #racket
Sgeo has quit [Ping timeout: 244 seconds]
sauvin has joined #racket
tilpner_ has quit [Ping timeout: 245 seconds]
keep_learning_M has quit [Ping timeout: 250 seconds]
pera has quit [Quit: leaving]
keep_learning_M has joined #racket
caltelt_ has joined #racket
pie___ has joined #racket
pie__ has quit [Ping timeout: 246 seconds]
endformationage has quit [Ping timeout: 250 seconds]
iyzsong has joined #racket
Fare has quit [Ping timeout: 246 seconds]
FreeFull has quit []
vraid has quit [Ping timeout: 240 seconds]
fmu has joined #racket
Sgeo__ has joined #racket
Sgeo_ has quit [Ping timeout: 246 seconds]
Fare has joined #racket
fmu has quit [Ping timeout: 250 seconds]
iyzsong has quit [Read error: Connection reset by peer]
<rjungemann>
I know about `syntax->datum` and related concepts, but this is thwarting me
<bremner>
rjungemann: some reason not to use "format" ?
<rjungemann>
This example is a contrived version of a bigger thing
<bremner>
ok.
<bremner>
well, regex is almost certainly not the answer ;
<bremner>
but I don't know what the question is ;)
<rjungemann>
Well I'm going to explain what I'm trying to do and then I know the answer is going to lead to, why not make a new `#lang`
<rjungemann>
I have a macro which takes some expressions and generates a string in another language, but I want to be able to allow the developer to use variables defined outside. I have it working with passing in a backtick-quoted list
<rjungemann>
My solution at the moment is to generate the string at macro-time in another language, with keywords it doesn't identify showing up in the string as, for example, `#{x}`, and then replace them at eval-time
<rjungemann>
I know this is probably one of those "this is so wrong I don't know where to begin" sort of questions
selimcan has joined #racket
<bremner>
I would have some helper function to do the string generation, and generate calls to that at macro-time
<bremner>
assuming there is a simple way to specify the contents of the strings as e.g. a list
<rjungemann>
If I'm understanding you correctly, I think I have that so far. Essentially I have one macro which grabs the body as a list and passes it to functions in `begin-for-syntax`
<rjungemann>
The only thing that's missing is, if a symbol `a` is encountered, then try and find a variable `a` and evaluate it in
<rjungemann>
Eventually I'd have it so, if it can't find a variable `a` in scope, it will assume it's a variable name in the destination language and leave it as-is
<rjungemann>
I might just let the developer pass in a hash-table of variables. Much easier
<rjungemann>
I would like to know purely for my own edification how to take a symbol and access a variable in-scope from it
<bremner>
I think the hard part is falling back to the target language. Otherwise you can just pass identifiers through, if they exist in the eval scope
<rjungemann>
I see that `(define a 1) (eval 'a)` does indeed return `1`. So there must be something else going on. So my problem could be somewhere else
<rjungemann>
Thanks for hearing me out! I might look into making a `#lang` at some point
<bremner>
OK, sorry I probably was not much help, but there more serious users of macros in the channel that may get back to you
<lexi-lambda>
rjungemann: That only works at the top level (i.e. the REPL).
<bremner>
speak of the angel ;)
<rjungemann>
Ah, makes sense. I did look into things like `#%app` and `#%top` but I'm afraid I don't know enough to use those effectively (as an aside I saw one of your Hackett talks and it totally blew my mind!)
widp_ has joined #racket
groovy2shoes has joined #racket
ZombieChicken has joined #racket
ubLIX has joined #racket
amz3 has quit [Read error: Connection reset by peer]
davidl has quit [Ping timeout: 246 seconds]
widp__ has joined #racket
orivej has joined #racket
soegaard has joined #racket
widp_ has quit [Ping timeout: 245 seconds]
widp_ has joined #racket
davidl has joined #racket
widp__ has quit [Ping timeout: 246 seconds]
ym555 has joined #racket
ubLIX has quit [Quit: ubLIX]
meepdeew has joined #racket
amz3 has joined #racket
widp_ has quit [Ping timeout: 246 seconds]
amz3 has quit [Ping timeout: 246 seconds]
Fare has quit [Ping timeout: 246 seconds]
widp_ has joined #racket
vraid has joined #racket
Fare has joined #racket
sz0 has joined #racket
mSSM has joined #racket
widp__ has joined #racket
widp_ has quit [Ping timeout: 246 seconds]
amz3 has joined #racket
amz3 has quit [Ping timeout: 255 seconds]
selimcan has quit [Remote host closed the connection]