Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Feb 19 2019 13:41
    @jdegoes banned @Patrick160893
  • Jan 31 2019 18:49
    ShermMeister starred scalaz/scalaz
  • Jan 31 2019 05:21
    jonyroy starred scalaz/scalaz
  • Jan 30 2019 21:14
  • Jan 30 2019 20:34
    jmg-duarte starred scalaz/scalaz
  • Jan 30 2019 18:43
    rajkirankv starred scalaz/scalaz
  • Jan 30 2019 09:07
    llater starred scalaz/scalaz
  • Jan 30 2019 07:41
    AgustaRC starred scalaz/scalaz
  • Jan 30 2019 04:16
    LiFangzhe starred scalaz/scalaz
  • Jan 30 2019 03:09
    xuwei-k labeled #2036
  • Jan 29 2019 19:11
    tigrus commented #2036
  • Jan 29 2019 19:11
    tigrus closed #2036
  • Jan 29 2019 13:32
    NeQuissimus commented #2036
  • Jan 29 2019 12:10

    xuwei-k on 7.2.x

    fix compile error with latest S… (compare)

  • Jan 29 2019 06:30
    tigrus commented #2036
  • Jan 29 2019 02:07
    NeQuissimus commented #2036
  • Jan 28 2019 20:41
    tigrus commented #2036
  • Jan 28 2019 19:12
    plokhotnyuk commented #2037
  • Jan 28 2019 17:09
    hrhino review_requested #2037
  • Jan 28 2019 15:32
    puffnfresh commented #2037
Emily Pillmore
@emilypi
I'm not a maintainer, do I can't so anything. I'll see if I can get ahold of Tony
Wiem Zine El Abidine
@wi101
Alright, otherwise we can make a new repository in zio
Afsal Thaj
@afsalthaj
@wi101 :+1: That will be good.
Emily Pillmore
@emilypi
*so
@wi101 that'd probably be the most expedient way. Sorry for the inconvenience
Wiem Zine El Abidine
@wi101
@emilypi alright, no problem
Thanks
Steven Fines
@sfines
anyone around?
Emily Pillmore
@emilypi
Sup
realfiretiger
@realfiretiger

@realfiretiger
is there anything wrong about using val (where I don't need generics of course) instead of def?
so instead of

def doStuff(par1: String, par2: Int): Int

I always do

val doStuff: (String, Int) => Int
or is there a standard about this?
OlegYch
@OlegYch
you are giving up parameter names but otherwise it might be preferable, even if not commonly accepted
realfiretiger
@realfiretiger
@OlegYch thanks
OlegYch
@OlegYch
personally i wouldn't recommend it
enzief
@enzief
@realfiretiger you'll allocate one more object for the lambda at runtime for val doStuff: (String, Int) => Int
and two lambdas for val doStuff: String => Int => Int
toxicafunk
@toxicafunk
I don't think val doStuff: String => Int => Int works though
enzief
@enzief
what do you mean?
scala> val x: Int => Int => Int = a => a + _
x: Int => (Int => Int) = $$Lambda$18428/0x0000000803207040@f39ce67
Alexander Konovalov
@alexknvl
! type Id[a >: Id[] <: Id[]] = a
! 1 + 1
multibot1
@multibot1
^
error: illegal cyclic reference involving type a
Int = 2
toxicafunk
@toxicafunk
@enzief indeed it works... now I have to figure out what I was thinking about when I said the contrary
Jim Collins
@jim-collins
Hi what is the benefit of having an invariant immutable IList?
Georgi Krastev
@joroKr21
IList is simpler than std lib List and truly immutable (List is mutable under the hood). And it doesn't suffer from the a huge traits hierarchy. Unpopular opinion in this room but I think invarience has no benefit and even worse type inference. Anothe disadvantage is the lack of interop.
Jim Collins
@jim-collins
Thanks @joroKr21 it is why it is invariant I was wondering about.
cosmin33
@cosmin33
! scala.util.Properties.versionMsg
multibot1
@multibot1
String = Scala library version 2.13.0 -- Copyright 2002-2019, LAMP/EPFL and Lightbend, Inc.
Cameron Joannidis
@camjo
Hey is most chat on discord now? Link in the description doesn’t seem to work
Justin Heyes-Jones
@justinhj
Scalaz chat is here but there's not much of it
Salar Rahmanian
@softinio
@camjo ZIO has moved to discord fully ... no idea about scalaz
Justin Heyes-Jones
@justinhj
Is there a Monoid instance for Tags.Max? Having trouble...
import scalaz._, Scalaz._
@ (Tags.Max(10) |+| Tags.Max(20)) 
cmd11.sc:1: value |+| is not a member of Int @@ scalaz.Tags.Max
Justin Heyes-Jones
@justinhj
I was wondering if it would be unlawful but this implementation seems fair enough
implicit val intMaxInstance = Monoid.instance[Int @@ Tags.Max]({
    case (a : (Int @@ Tags.Max),b : (Int @@ Tags.Max)) =>
    val m : Int = Math.max(a.asInstanceOf[Int], b.asInstanceOf[Int])
    Tags.Max(m)
}, Tags.Max(Int.MinValue))
beezee
@beezee
what law are you worried that violates? looks 100 % iso to max monoid on plain int to me
Dimitar Georgiev
@dimitarg

My colleague was trying to write a function def something(f: A => F[B]): F[A => B]

We established that function cannot exist, because it proposes that any applicative is a monad:

trait Nope[F[_]] {
  def applicative: Applicative[F]
  def nope[A, B](f: A => F[B]): F[A => B]
  def flatMap[A, B](f: A => F[B])(x: F[A]): F[B] =
    applicative.ap(nope(f))(x)
}

But before we established it cannot exist, I searched for it, and found

assemble :: forall b f . (Finite a, Applicative f) => (a -> f b) -> f (a -> b)

Could somebody please walk me through what that type is, and what it says?

(Assuming as usual little is off topic in this channel and that WTF questions are okay)
Harrison Houghton
@hrhino
So, Finite is the class of all types having a finite number of elements, it appears.
That function just evaluates a -> f b for all possible as, getting an f [(a,b)], and then turns the [(a, b)] into a function a -> b by viewing the list of pairs as a relation.
So it's very limited: you can't do it unless you know all possible as, and the resulting applicative effect is just the combination of all possible effects resulting from a -> f b.
Justin Heyes-Jones
@justinhj
@beezee I was curious why there is an implementation of monoid for numbers tagged with multiplication but not for max, so I started to suspect it wasn't lawful, but I guess not
Barry Zhong
@zhongdj
what happened to scalaz.github.io? It's so incomplete.
Dimitar Georgiev
@dimitarg
@hrhino thank you!
I can't understand how we go from a relation to a function. Forget elements?
Harrison Houghton
@hrhino
A function is just a binary relation a R b such that each element of a is related to exactly one b
So this depends on that list always being such a relation, which isn't a trivial fact but is also not hard to show.
Practically speaking, you do so with a: A => pairs.find(_._1 == a)
Barry Zhong
@zhongdj
is scalaz still active?
Dimitar Georgiev
@dimitarg
@hrhino right, I got thrown off somehow. thanks for the patient explanation.
Finite a implies an equality notion, and surely allValues :: [a] is going to give me back all distinct values.
(I guess I was thinking about injectivity and confused it with function-ness. Flipped the arrows somehow)
@zhongdj this channel, not so much. What do you mean by "active"?
Philip Schwarz
@philip_schwarz_twitter