lexi-lambda changed the topic of #racket to: Racket v7.1 has been released: http://blog.racket-lang.org/2018/10/racket-v7-1.html -- Racket -- https://racket-lang.org -- https://pkgs.racket-lang.org -- Paste at http://pasterack.org
joebobjoe has quit [Ping timeout: 240 seconds]
pie__ has quit [Read error: Connection reset by peer]
pie__ has joined #racket
Diagon has joined #racket
longshi has joined #racket
ng0 has quit [Quit: Alexa, when is the end of world?]
Diagon has quit [Quit: Leaving]
joebobjoe has joined #racket
ziyourenxiang has joined #racket
longshi has quit [Ping timeout: 252 seconds]
ubLIX has quit [Quit: ubLIX]
joebobjoe has quit [Ping timeout: 250 seconds]
acarrico has joined #racket
orivej has quit [Ping timeout: 250 seconds]
g00s has joined #racket
orivej has joined #racket
mahmudov has quit [Ping timeout: 250 seconds]
joebobjoe has joined #racket
badkins has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 250 seconds]
pera has quit [Quit: leaving]
Sgeo_ has joined #racket
Sgeo has quit [Ping timeout: 250 seconds]
endformationage has joined #racket
Sgeo_ has quit [Read error: Connection reset by peer]
acarrico has quit [Ping timeout: 246 seconds]
Sgeo has joined #racket
DGASAU has quit [Ping timeout: 250 seconds]
lockywolf_ has joined #racket
iyzsong has joined #racket
pierpal has quit [Quit: Poof]
pierpal has joined #racket
_whitelogger has joined #racket
endformationage has quit [Quit: WeeChat 2.3]
pierpal has quit [Read error: Connection reset by peer]
Arcaelyx has quit [Ping timeout: 268 seconds]
joebobjoe has quit [Ping timeout: 244 seconds]
Arcaelyx has joined #racket
joebobjoe has joined #racket
pierpal has joined #racket
jao has quit [Ping timeout: 250 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #racket
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #racket
sz0 has quit [Quit: Connection closed for inactivity]
dan_f has joined #racket
Sgeo has quit [Ping timeout: 246 seconds]
Sgeo has joined #racket
joebobjoe has quit [Ping timeout: 240 seconds]
Lowl3v3l has joined #racket
lockywolf_ has quit [Remote host closed the connection]
joebobjoe has joined #racket
lockywolf has joined #racket
lockywolf has quit [Remote host closed the connection]
orivej has joined #racket
lockywolf has joined #racket
lockywolf_ has joined #racket
lockywolf has quit [Client Quit]
ubLIX has joined #racket
iyzsong-x has joined #racket
iyzsong has quit [Ping timeout: 250 seconds]
joebobjoe has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 250 seconds]
pie___ has joined #racket
g00s has quit [Quit: Textual IRC Client: www.textualapp.com]
pie__ has quit [Ping timeout: 268 seconds]
hjek has joined #racket
hjek has quit [Quit: Leaving.]
ng0 has joined #racket
hjek has joined #racket
dan_f has quit [Quit: dan_f]
pierpal has quit [Ping timeout: 244 seconds]
orivej has joined #racket
mzan has joined #racket
ubLIX has quit [Quit: ubLIX]
longshi has joined #racket
Arcaelyx_ has joined #racket
Arcaelyx has quit [Ping timeout: 268 seconds]
YuGiOhJCJ has quit [Ping timeout: 256 seconds]
YuGiOhJCJ has joined #racket
longshi has quit [Ping timeout: 252 seconds]
orivej has quit [Ping timeout: 250 seconds]
hjek has quit [Quit: Leaving.]
hjek has joined #racket
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
acarrico has joined #racket
iyzsong-x has quit [Ping timeout: 252 seconds]
hjek has quit [Quit: Leaving.]
orivej has joined #racket
avitusa has joined #racket
avitusa has quit [Client Quit]
avitusa has joined #racket
pie__ has joined #racket
<avitusa> Hi. I've been banging my head against something for about an hour now. Inside a syntax-parse, I want to apply two transformations to one of my matched patterns. Example: (syntax-parse stx [(~literal foo) #'(some-procedure (transformation2 (transformation1 foo)))]). It seems that I can't get transformation1 to happen before transformation2, so transformation2 is literally applied to (transformation1 foo)
<avitusa> instead of its results. Any ideas/pointers?
<avitusa> this is what my actual example looks like: [(_ rel c:int-col) #'(col-val-predicate rel (integer-predicate (reflexive-operator c.operator)) 'c.rhs c.lhs)]
pie___ has quit [Ping timeout: 268 seconds]
DGASAU has joined #racket
hjek has joined #racket
tautologico has quit [Quit: Connection closed for inactivity]
endformationage has joined #racket
DGASAU has quit [Ping timeout: 268 seconds]
<lavaflow> I wish there was a way to search racket documentation for procedures that are functionally equivalent to a given one
<lavaflow> so for example I've been using (define (split-list f l) (values (filter f l) (filter (negate f) l))) which is equivalent to partition
<lavaflow> I know that's totally intractable, but I wish
hjek has quit [Quit: Leaving.]
hjek has joined #racket
avitusa has quit [Ping timeout: 272 seconds]
ziyourenxiang has quit [Ping timeout: 250 seconds]
avitusa has joined #racket
jao has joined #racket
acarrico has quit [Ping timeout: 240 seconds]
longshi has joined #racket
hjek has quit [Quit: Leaving.]
_whitelogger has joined #racket
tautologico has joined #racket
buyfn has joined #racket
ng0 has quit [Remote host closed the connection]
ng0 has joined #racket
pie___ has joined #racket
pie__ has quit [Remote host closed the connection]
tse has joined #racket
buyfn has quit [Quit: buyfn]
<lf94> lavaflow, maybe with typed racket?
hjek has joined #racket
avitusa has quit [Ping timeout: 250 seconds]
buyfn has joined #racket
tautologico has quit [Quit: Connection closed for inactivity]
longshi has quit [Ping timeout: 252 seconds]
zmt01 has joined #racket
zmt00 has quit [Ping timeout: 264 seconds]
buyfn has quit [Quit: buyfn]
hjek has quit [Quit: Leaving.]
mahmudov has joined #racket
<lavaflow> hmm, interesting idea
<lf94> This is what Haskell has
<lf94> err...what's it called...Hoogle.
<lf94> Put your types in, returns all functions that use the same types.
zmt01 is now known as zmt00
joebobjoe has joined #racket
longshi has joined #racket
<jcowan> Of course, Haskell docs typically give you no clue about which of said functions do what.
tumdum has joined #racket
<nisstyre> jcowan: USE THE TYPES OMG :p
<nisstyre> jcowan: I have the same problem tbh
<nisstyre> ok I have all the type signatures great, now what
<nisstyre> I usually have to read the source code
<nisstyre> which is fine since haddock links to it usually
hjek has joined #racket
dan_f has joined #racket
dan_f has quit [Client Quit]
<lf94> > read the source code
<lf94> yea.
<lf94> If the types were more strict, it'd be better
<lf94> not strict...
<lf94> more specific.
joebobjoe has quit [Ping timeout: 250 seconds]
mzan has left #racket [#racket]
<lavaflow> I think the notion of a type system freeing programmers from the shackles of having to document is.. wishful thinking at best
<lf94> It does help enormously
<lf94> But yes, real documentation is best.
<lf94> Int -> Int; impossible to tell what this does
<lf94> Int -> Int * Int; ok, we are getting better
<lf94> (Forall A:Int) A -> A * A; even better
<lf94> (In fact I dont think you can get more specific)
<lf94> You can tell now this functino does a^2
mzan has joined #racket
joebobjoe has joined #racket
<jcowan> I don't understand the third one. Is * multiplication or union typing here?
longshi has quit [Quit: WeeChat 2.3]
joebobjoe has quit [Ping timeout: 250 seconds]
<nisstyre> jcowan: product types i.e. (a, a)
<nisstyre> so more like a struct
<nisstyre> + would be a union
<jcowan> Right, I always make that mistake (reminiscent of reft/light confusion, which I also have)
<nisstyre> fair enough, I sometimes have to think about it when people use that notation too
<nisstyre> but it makes sense
<jcowan> It does
<jcowan> Then how can (Forall A:Int) A -> A * A possibly be the type of `square`?
<lf94> Oh, I *was* using * as multiply
<lf94> I'm sure there is a more standard way of doing this.
hjek has quit [Quit: Leaving.]
<lf94> My type theory is pretty messed up. I've seen many things go by different names. It is confusing to me.
<nisstyre> jcowan: I think it's meant to convey the fact that you can have any combination of two values that inhabit A
<lf94> I think you can do a...product type like this
<lf94> Multiply A A
<jcowan> Yes, such as "factor n into two factors"
<lf94> Where Multiply type can take 2 types
<nisstyre> so, cartesian product
<nisstyre> that's what we should really call them, cartesian product types
<lf94> I have seen product type...but also just struct I guess
<lf94> if you have any suggestions on a good source to sort myself out I'd appreciate it
<lf94> A | A <- I thought this was union type
<nisstyre> lf94: I don't really have a single good source
<lf94> then you have tagged union type
<nisstyre> there are books, but they're probably far more advanced than you need
<lf94> Cons1 A | Cons2 B
<lf94> or something
<lf94> MyTaggedType = Cons1 A | Cons2 B
<lf94> To me this is just confusing
<lf94> I like the idea of "propositions as types"
<lf94> much easier to keep in my head
<nisstyre> maybe http://cs.brown.edu/courses/cs173/2012/book/types.html#%28part._.Types_as_.Static_.Disciplines%29
<lf94> Fruit = Apple OR Pear
<lf94> Crazy = StandingHair AND WideEyed
<nisstyre> lf94: it means basically the same thing
<lf94> yeah
<lf94> so that is another problem I have a guess: too much overlap/similarities
<nisstyre> lf94: but, I think using +/* is consistent with other things like propability theory
<nisstyre> P(A) + P(B) means A or B
<nisstyre> P(A) * P(B) means A and B
<nisstyre> so they use the same logic in type theory
<lf94> Oh! I didnt know this
<nisstyre> but the definition is different, although it follows the same syntactic rules
<lf94> See, it's the little things that really help
<nisstyre> so you can apply abstract algebra to this now
<lf94> What does Quotient type do again
<nisstyre> that definition is really abstract
<nisstyre> lf94: I think it's just a way of having types where you can say "these two types are equivalent because they satisfy some structure"
<nisstyre> like a Set of types or something
<nisstyre> then they can be unified
<nisstyre> same way 8/4 and 16/8 are the same
<nisstyre> does that make sense?
<lf94> yep
<lf94> in fact I think that explanation is very elegant
<nisstyre> yeah, but I think implementing them is tricky
orivej has quit [Ping timeout: 250 seconds]
mahmudov has quit [Ping timeout: 250 seconds]
<lf94> Ahhh yes, intersection types too...
<lf94> nisstyre, this web page is actually great
mahmudov has joined #racket
<lf94> I guess intersection types are...product types
<lf94> union types, sum types
<lf94> so - which should I default to?
<lf94> (the naming)
joebobjoe has joined #racket
ZombieChicken has joined #racket
wingsorc has joined #racket
<jcowan> All WP math articles pretty much fail as WP articles.
<jcowan> they really should be sent to a MathPedia
acarrico has joined #racket
<lf94> I would even pay to access such a service
ziyourenxiang has joined #racket
<lf94> let's get on a "type theory" pedia too
dddddd has quit [Read error: Connection reset by peer]
<lf94> I need to figure out the most minimal "pedia" implementation and do one in Rust
<lf94> so anyone can host a super minimal personal wiki
badkins has joined #racket
badkins has quit [Remote host closed the connection]
joebobjoe has quit [Ping timeout: 250 seconds]
badkins has joined #racket