catonano has quit [Read error: Connection reset by peer]
tilpner has quit [Remote host closed the connection]
tilpner has joined #racket
gproto023 is now known as gproto23
nullcone has quit [Quit: Connection closed for inactivity]
dbmikus__ has joined #racket
dbmikus__ has quit [Ping timeout: 265 seconds]
dbmikus__ has joined #racket
dbmikus__ has quit [Ping timeout: 260 seconds]
TCZ has joined #racket
orivej has quit [Ping timeout: 260 seconds]
dmiles has quit [Ping timeout: 260 seconds]
dmiles has joined #racket
dmiles has quit [Read error: Connection reset by peer]
dmiles has joined #racket
dmiles has quit [Ping timeout: 260 seconds]
dmiles has joined #racket
acarrico has joined #racket
dbmikus__ has joined #racket
dbmikus__ has quit [Ping timeout: 240 seconds]
gproto023 has joined #racket
gproto23 has quit [Ping timeout: 260 seconds]
dbmikus__ has joined #racket
dbmikus__ has quit [Ping timeout: 260 seconds]
true-grue has joined #racket
gproto0023 has joined #racket
gproto023 has quit [Ping timeout: 265 seconds]
bitmapper has quit [Quit: Connection closed for inactivity]
nebunez has joined #racket
true-grue has quit [Ping timeout: 246 seconds]
vraid has joined #racket
notzmv has joined #racket
arpunk has joined #racket
gproto023 has joined #racket
gproto0023 has quit [Ping timeout: 264 seconds]
acarrico has quit [Ping timeout: 240 seconds]
bitmapper has joined #racket
Sgeo has joined #racket
acarrico has joined #racket
TCZ has quit [Quit: Things Take Time]
gproto023 has quit [Ping timeout: 240 seconds]
dbmikus__ has joined #racket
acarrico has quit [Ping timeout: 272 seconds]
dbmikus__ has quit [Ping timeout: 260 seconds]
arpunk has quit [Remote host closed the connection]
arpunk has joined #racket
<samth>
extrowerk: i've said this to you many times, but you should ask about this on the mailing list, or on slack, or on github
<samth>
extrowerk: also, you might try building Racket CS
<extrowerk>
will try.
caente has joined #racket
dbmikus__ has joined #racket
dbmikus__ has quit [Ping timeout: 256 seconds]
aorst has quit [Quit: aorst]
deeglaze has quit [Ping timeout: 260 seconds]
aorst has joined #racket
aorst has quit [Remote host closed the connection]
endformationage has joined #racket
TCZ has joined #racket
gproto023 has joined #racket
gproto0023 has joined #racket
gproto023 has quit [Ping timeout: 240 seconds]
dbmikus__ has joined #racket
gproto023 has joined #racket
gproto0023 has quit [Read error: Connection reset by peer]
gproto0023 has joined #racket
gproto023 has quit [Ping timeout: 240 seconds]
gproto023 has joined #racket
gproto0023 has quit [Ping timeout: 260 seconds]
catonano has joined #racket
acarrico has joined #racket
gproto0023 has joined #racket
gproto023 has quit [Ping timeout: 260 seconds]
TCZ has quit [Quit: Diabe? tkwi w szczegó?ach]
casaca has quit [Remote host closed the connection]
greghendershott has joined #racket
deeglaze has joined #racket
gproto023 has joined #racket
gproto023 has quit [Remote host closed the connection]
gproto023 has joined #racket
gproto0023 has quit [Ping timeout: 256 seconds]
casaca has joined #racket
orivej has joined #racket
teardown_ has joined #racket
teardown has quit [Ping timeout: 240 seconds]
teardown_ has quit [Ping timeout: 240 seconds]
<yurb>
is it possible to write a contract that would be valid for any function that accepts two or more arguments?
<yurb>
I don't mean optional arguments, but a single contract that would be valid for any function accepting 2 or more non-keywoard non-optional arguments
<yurb>
*keyword
phillbush has joined #racket
<yurb>
(I'm writing a contract for a `call-with-...` style function, where one of its arguments will be another function taking 2+ arguments)
<samth>
yurb: so it should allow functions that accept only 3 arguments?
<yurb>
yes, exactly
<samth>
yurb: then i think you want `unconstrained-domain->`
<yurb>
I see, thanks
<yurb>
For the context: I'm writing a reusable wrapper around http response handlers for use with dispatch-rules
<yurb>
`call-with-json-payload`, whose job is to check the payload is JSON and return 400 if it isn't
<yurb>
otherwise it should call the supplied function with request, the decoded payload and any other arguments passed into it
<yurb>
maybe there is a simpler way to do it...
teardown has joined #racket
bocaneri has quit [Read error: Connection reset by peer]
selfsymmetric-mu has joined #racket
<selfsymmetric-mu>
Hello! Does Racket have an anamorphic map macro such that `(map-ana (* it 2) '(1 2 3))` evaluates to `'(2 4 6)`?
cantstanya has quit [Ping timeout: 240 seconds]
cantstanya has joined #racket
<selfsymmetric-mu>
Oops, *anaphoric
<ecraven>
if not, you can write one ;)
<ecraven>
in general, I think Schemes haven't embraced to the same extent that CL does (or at least some proponents do). you won't find many anamorphic macros in most Schemes.
<selfsymmetric-mu>
Ah interesting. I'm coming at this from Elisp/CL experience, so that's probably my hangup.
<selfsymmetric-mu>
Let's see if I can defmacro my way to it. I guess you call that `define-syntax` here?
<ecraven>
you probably want to look at syntax-case (and you'll need a long and detailed look :-/)
<ecraven>
(mind that syntax-case is Scheme-specific, so your code will not be portable to all Schemes).
<selfsymmetric-mu>
Weird…what was wrong with defmacro in Lisp 2s? All I want is a change in the evaluation order.
<ecraven>
The only portable system (at the moment) is syntax-rules, which will fight you with teeth and nails if you try to write an unhygienic macro.
<ecraven>
selfsymmetric-mu: in one word, hygiene ;)
<selfsymmetric-mu>
I see…
<ecraven>
macros in Scheme are (in some respect) very different than macros in CL or other lisps
<selfsymmetric-mu>
Wow, I had no idea. Yeah, my first attempt didn't work.
<selfsymmetric-mu>
(define-syntax-rule (anamap form list) `(map (lambda (it) ,form) ,list))
<selfsymmetric-mu>
(anamap (square it) ns) complains with "unbound `it`"
<selfsymmetric-mu>
So I didn't get the property I wanted, where `it` is unbound until after syntax expansion.
<selfsymmetric-mu>
`defmacro` expands, then evaluates, so this works