samth changed the topic of #racket to: Racket v7.7 has been released: https://blog.racket-lang.org/2020/05/racket-v7-7.html -- Racket -- https://racket-lang.org -- https://pkgs.racket-lang.org -- Paste at http://pasterack.org
YuGiOhJCJ has joined #racket
TCZ has quit [Quit: Leaving]
catonano_ has joined #racket
catonano has quit [Ping timeout: 260 seconds]
catonano_ is now known as catonano
TCZ has joined #racket
efm has joined #racket
badkins has quit [Remote host closed the connection]
TCZ has quit [Quit: Leaving]
badkins has joined #racket
badkins has quit [Ping timeout: 264 seconds]
aeth_ has joined #racket
aeth has quit [Ping timeout: 264 seconds]
aeth_ is now known as aeth
vraid has quit [Ping timeout: 256 seconds]
AMDphreak has quit [Read error: Connection reset by peer]
nullman has quit [Ping timeout: 260 seconds]
nullman has joined #racket
badkins has joined #racket
_whitelogger has joined #racket
Lowl3v3l has joined #racket
dddddd has quit [Ping timeout: 264 seconds]
aidalgol has quit [Remote host closed the connection]
narimiran has joined #racket
aidalgol has joined #racket
bocaneri has joined #racket
bocaneri has quit [Remote host closed the connection]
bocaneri has joined #racket
rgherdt has joined #racket
Lowl3v3l has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Ping timeout: 240 seconds]
Lowl3v3l has joined #racket
Lowl3v3l has quit [Remote host closed the connection]
Lowl3v3l has joined #racket
Lowl3v3l has quit [Remote host closed the connection]
Lowl3v3l has joined #racket
Lowl3v3l has quit [Client Quit]
Lowl3v3l has joined #racket
readyready15728 has joined #racket
<readyready15728> Just learning Racket ... why is the lambda written like this in the Racket Guide? (filter (lambda (i) (i . < . 3)) '(1 2 3))
Sgeo has quit [Read error: Connection reset by peer]
<erkin> What do you mean?
nikita` has joined #racket
orivej has joined #racket
<readyready15728> erkin, (i . < . 3) is not syntax I've seen in any other Lisp
<readyready15728> I've only ever seen things like (< i 3) until now
<erkin> Oh yeah, that's a Racketism. I don't like it myself but it's meant to allow infix operations, probably to make Racket more palatable to people used to Algol syntax.
<erkin> Essentially, if you put two dots around an element in a list, it puts that element in the head of the list at reader time.
<erkin> So '(1 2 . 3 . 4 5) becomes '(3 1 2 4 5)
<erkin> Similarly, (2 . + . 4) becomes (+ 2 4).
<readyready15728> That's what I thought ... thanks
<readyready15728> And yes it's ugly
<erkin> I've never used it myself. I think it's conversely confusing for newcomers because they might associate it with the cons dot.
<readyready15728> Yeah I don't know what they were thinking
<erkin> It could look better as (2 .+. 4), à la Haskell's backticks, but . is allowed in identifiers by default.
<readyready15728> Oh no, Haskell *shudders*
<erkin> Haha
<bremner> erkin: yeah, but do we really need the cons dot? or is it one of those historical artifacts like the names car and cdr
<erkin> I agree but I can't think of a better way to represent an improper list.
<erkin> Well, not 'better' but any other.
<bremner> rudybot: eval (cons 1 2)
<rudybot> bremner: ; Value: '(1 . 2)
<rudybot> bremner: your sandbox is ready
<erkin> That's unquoted.
<bremner> ah. right. well, we have quasiquote.
<bremner> not sure I'm winning for complexity though ;)
<erkin> Haha
<erkin> I think (foo . bar) should've been self-quoting, just like #(foo bar).
<erkin> But I guess it's a matter of consistency with the reader. If it begins with an lparen, it *must* be #%app.
efm has quit [Remote host closed the connection]
<erkin> The vector syntax is a separate thing.
mbrndtgn4 has joined #racket
efm has joined #racket
<erkin> Probably the same reason () isn't self-quoting.
aidalgol has quit [Disconnected by services]
aidalgol- has joined #racket
aidalgol- is now known as aidalgol
mbrndtgn has quit [Quit: Ping timeout (120 seconds)]
mbrndtgn4 is now known as mbrndtgn
mario-goulart has quit [Remote host closed the connection]
zmt00 has joined #racket
zmt01 has quit [Ping timeout: 260 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej_ has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej_ has quit [Ping timeout: 246 seconds]
orivej has joined #racket
badkins has joined #racket
orivej has quit [Ping timeout: 265 seconds]
orivej_ has joined #racket
badkins has quit [Ping timeout: 256 seconds]
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
aidalgol has quit [Remote host closed the connection]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
rgherdt_ has joined #racket
rgherdt has quit [Ping timeout: 258 seconds]
catonano has quit [Quit: catonano]
narimiran has quit [Ping timeout: 260 seconds]
rgherdt_ has quit [Remote host closed the connection]
narimiran has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej_ has joined #racket
orivej has quit [Ping timeout: 256 seconds]
rgherdt has joined #racket
TCZ has joined #racket
orivej has joined #racket
badkins has joined #racket
orivej_ has quit [Ping timeout: 260 seconds]
dddddd has joined #racket
badkins has quit [Ping timeout: 246 seconds]
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej_ has joined #racket
orivej has quit [Read error: Connection reset by peer]
nullman has quit [Remote host closed the connection]
nullman has joined #racket
orivej_ has quit [Ping timeout: 260 seconds]
orivej has joined #racket
badkins has joined #racket
acarrico has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #racket
nullman has quit [Ping timeout: 258 seconds]
nullman has joined #racket
acarrico has joined #racket
TCZ has quit [Ping timeout: 240 seconds]
doyougnu has joined #racket
rgherdt has quit [Remote host closed the connection]
doyougnu has quit [Remote host closed the connection]
doyougnu has joined #racket
dataangel has quit [Ping timeout: 256 seconds]
doyougnu has quit [Read error: Connection reset by peer]
doyougnu has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
ncl3 has joined #racket
badkins has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Ping timeout: 256 seconds]
badkins has joined #racket
poga has joined #racket
srji has quit [Ping timeout: 265 seconds]
<readyready15728> What's the best way to work with raster images in Racket?
orivej_ has joined #racket
<erkin> Within DrRacket REPL
orivej has quit [Ping timeout: 265 seconds]
<bremner> emacs racket-mode also works
<bremner> as does geiser, iirc.
<bremner> but maybe you mean a library?
<rsaarelm> Do people generally use the standard library OO system in Racket or avoid OO or roll their own? I'm new to the language and was wondering if there's maybe a similar situation as with OCaml where the language has an OO system but it's sort of fallen to the wayside and not used in practice.
<rsaarelm> Also, are there any recommended resources for learning it for experienced programmers other than just the guide and the reference from the standard docs? Something similar to this thing for Haskell would be great http://dev.stephendiehl.com/hask/
<bremner> IIUC, the OO system is mainly used for GUI stuff
<rsaarelm> That's somewhat helpful. I'm planning on doing some video game object modeling that's going to push the expressivity, and "mostly for GUI" sort of points towards the mainstream 90s sort of OO that ended up being a bit too rigid for complex videogame objects.
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
haidao has joined #racket
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
haidao has quit [Remote host closed the connection]
badkins has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Ping timeout: 265 seconds]
badkins has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
badkins has quit [Ping timeout: 260 seconds]
<readyready15728> bremner, I think I found my answer: https://docs.racket-lang.org/draw/index.html
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #racket
andrei-n has joined #racket
efm has quit [Ping timeout: 264 seconds]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #racket
efm has joined #racket
rgherdt has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
<erkin> rsaarelm: Built in Racket OO is fairly decent for most purposes but there exist alternative systems of course.
<erkin> You might be interested in Swindle also.
<rsaarelm> Yeah, CLOS-like stuff sounds interesting.
<rsaarelm> I never really looked into it but people talked about it as something really impressive back when.
<erkin> Disclaimer: I've only toyed around with Swindle. I never needed to use anything other than racket/class because I haven't actually used any OO outside GUI programs.
<rsaarelm> I probably want to read Art of the Metaobject Protocol sometimes too.
acarrico has quit [Remote host closed the connection]
badkins has joined #racket
simendsjo has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
badkins has quit [Ping timeout: 240 seconds]
<samth> erkin: not yet, thanks
<samth> rsaarelm: there is not a document like that
<samth> rsaarelm: the other approach that is used a bunch is generic functions, see `define/generic`
acarrico has joined #racket
nan` has joined #racket
narimiran has quit [Ping timeout: 258 seconds]
orivej has quit [Ping timeout: 260 seconds]
orivej_ has joined #racket
<rsaarelm> Yeah, generics stuff looks interesting.
badkins has joined #racket
badkins has quit [Ping timeout: 265 seconds]
simendsjo has quit [Ping timeout: 240 seconds]
iyzsong has quit [Quit: ZNC 1.7.5 - https://znc.in]
iyzsong has joined #racket
orivej_ has quit [Ping timeout: 264 seconds]
orivej has joined #racket
orivej has quit [Ping timeout: 260 seconds]
orivej has joined #racket
badkins has joined #racket
bocaneri has quit [Remote host closed the connection]
<rsaarelm> Trying to figure define/generic out. Guide doesn't seem to have much on it, Reference has stuff but it's a bit terse of course.
<rsaarelm> This sort of looks like Rust's traits?
sagax has quit [Ping timeout: 256 seconds]
sagax has joined #racket
Sgeo has joined #racket
<samth> rsaarelm: it's a little like that
<samth> it's also like OO in that you define the "generic" and then you make various structs be instances by implementing the appropriate methods
rmnull has joined #racket
efm has quit [Ping timeout: 264 seconds]
efm has joined #racket
rmnull has quit [Quit: WeeChat 2.8]
rmnull has joined #racket
rmnull has quit [Client Quit]
orivej_ has joined #racket
orivej has quit [Ping timeout: 240 seconds]
epony has quit [Ping timeout: 258 seconds]
<rsaarelm> Also looks like there's a multimethod package.
<rsaarelm> Another trickiness with game logic is that rules might vary based on properties of multiple participants.
<rsaarelm> Like, game's about verbs as well as objects, and verbs can be like [character] uses [tool] on [object], that vary based on all three participant objects.
badkins has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Remote host closed the connection]
badkins has joined #racket
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
narimiran has joined #racket
tilpner has quit [Ping timeout: 246 seconds]
epony has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
technomancy has joined #racket
<technomancy> I think the titles of the questions got mixed up on the racket survey: https://p.hagelb.org/racket-survey.png
<technomancy> "Which versions of Racket do you use for your applications? [ ] Yes [ ] No [ ] I don't use an installer [ ] Other" etc
diip has joined #racket
<samth> technomancy: yes, that just happened somehow, trying to fix it
<samth> technomancy: should be fixed now
<technomancy> cool, thanks
andrei-n has quit [Read error: Connection reset by peer]
andrei-n has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
orivej has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
badkins has quit [Remote host closed the connection]
badkins has joined #racket
diip has quit [Quit: ERC (IRC client for Emacs 26.1)]
badkins has quit [Ping timeout: 246 seconds]
badkins has joined #racket
orivej has quit [Ping timeout: 265 seconds]
orivej_ has joined #racket
nan` has quit [Ping timeout: 256 seconds]
orivej_ has quit [Quit: No Ping reply in 180 seconds.]
orivej has joined #racket
endformationage has joined #racket
doyougnu has quit [Ping timeout: 264 seconds]
narimiran has quit [Ping timeout: 256 seconds]
efm has quit [Ping timeout: 240 seconds]
efm has joined #racket
nikita` has quit [Quit: leaving]
efm has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #racket
andrei-n has quit [Quit: Leaving]
badkins has quit [Remote host closed the connection]
badkins has joined #racket
badkins has quit [Ping timeout: 246 seconds]
rgherdt has quit [Ping timeout: 265 seconds]
badkins has joined #racket
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #racket
nan` has joined #racket