Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 06:26
    jxnu-liguobin commented #9634
  • 03:53

    SethTisue on main

    community page: replace Freenod… Merge pull request #1251 from S… (compare)

  • 03:53
    SethTisue closed #1251
  • 01:15

    SethTisue on 2.12.x

    2.12: new Scala SHA (#1433) (compare)

  • 01:15
    SethTisue closed #1433
  • 01:14
    SethTisue edited #1433
  • Jun 19 18:50
    SethTisue commented #9674
  • Jun 19 18:50
    SethTisue demilestoned #9674
  • Jun 19 16:54
    som-snytt closed #9674
  • Jun 19 16:46
    som-snytt synchronize #9674
  • Jun 19 10:10
    bjornregnell commented #1248
  • Jun 19 10:09
    bjornregnell commented #1248
  • Jun 19 10:08
    bjornregnell commented #1250
  • Jun 19 10:04
    pjfanning synchronize #2086
  • Jun 19 10:00
    bjornregnell commented #1248
  • Jun 19 09:59
    pjfanning opened #2086
  • Jun 19 09:22

    Philippus on main

    Fix typo: eather -> either Merge pull request #2085 from m… (compare)

  • Jun 19 09:22
    Philippus closed #2085
  • Jun 19 08:34
    myyk opened #2085
  • Jun 19 05:03
    scala-jenkins milestoned #9674
celik sismanturk
@celik0311
the part i get hung up on is the inbetween lists part
Emily Pillmore
@emilypi
@celik0311 use a fold
celik sismanturk
@celik0311
ok good idea trying it now
Emily Pillmore
@emilypi
You can use the prepend operator :+ to add to the end of a list (List(1, 2, 3) :+ 4) == List(1, 2, 3, 4), and combine it with a fold a la
List(List('f', 'o', 'o'),List('b', 'a', 'r'),List('q', 'u', 'x')).foldLeft(Nil:List[Char])((acc, cs) => acc ::: (cs :+ '\n’))

>List(f, o, o,
, b, a, r,
, q, u, x,
)
The only problem will be that the last element will have a newline after. To fix that, you’ll have to use fold in conjunction with a pattern match
I’ll leave that up to you
celik sismanturk
@celik0311
:+1:
i would pattern that the next item isnt Nil correct?
Emily Pillmore
@emilypi
yes. But make sure the function is total. You’ll need 3 cases to do this
Rob Norris
@tpolecat
gitter seems to be freaking out
not that there's anything wrong with that
David Dudson
@DavidDudson

is there a nice way to span from the end of a string???

I cant see it other then implementing it myself. Reversing strings seems innefficient

Ghost
@ghost~54f4b69115522ed4b3dcb16d
@DavidDudson s.lastIndexWhere(!p)is where to split.
Rob Norris
@tpolecat
mind the -1
David Dudson
@DavidDudson
I guess math.min(s.lastIndexWhere(!p) + 1, s.length) would work
It's interesting that takeRightWhile is missing too. I must have a nosy at these new collections
celik sismanturk
@celik0311
i am having trouble understanding where to add the case statements in that fold statement
Rob Norris
@tpolecat
I would just write out the recursive method and then maybe rewrite it with foldRight. The important thing is to understand what’s going on.
celik sismanturk
@celik0311
my understanding is that acc is the new list and we are just cocating to it as we get each element
i would guess i would that i would patten match on elem but how would i know its the last item?
case x::Nil?
David Dudson
@DavidDudson

Given a list roughly like....

B :: A :: C :: B :: C :: Nil

Is there a functional way of finding the first B after an A, without multiple traversals?

Rob Norris
@tpolecat
list.dropWhile(_ != A).find(_ == B)
One traversal, no allocation other than the Some(x) if the value is found.
David Dudson
@DavidDudson
@tpolecat I like it! thanks. It works perfectly with Cons lists
Rob Norris
@tpolecat
Cons lists are the best.
David Dudson
@DavidDudson
^
sharing memory is great
celik sismanturk
@celik0311
i think i figured out a solution is there a dowside to generating the list above and the calling .init basically just remove the last element aka the newline
lines.foldLeft(Nil:List[Char])((acc, cs)=> acc ::: (cs :+ '\n')).init
seemed consise which is why I choose it but again scala is pretty new to me so maybe im overlooking something
Dhiraj himani
@dk_hemani_twitter
I am not able to understand this behaviour
val l1 = mutable.LinkedList(1,2,3,4,5)
l1.next = l1
and after this the l1 becomes empty
println(l1)
gives output:
{}
Dhiraj himani
@dk_hemani_twitter
        val l1 = scala.collection.mutable.LinkedList(1,2,3,4,5)
        l1.next = l1
        println(l1)
output: LinkedList()
I am pretty sure this is the reason why
last element of a linked list points to itself
Dhiraj himani
@dk_hemani_twitter
Thanks
Dhiraj himani
@dk_hemani_twitter
It took my much time
Thanks for helping out
Alexander Konovalov
@alexknvl
np ;)
Ghost
@ghost~540393fe163965c9bc2018ce
@celik0311 what you're writing looks an awful lot like lines.intercalate("\n") from scalaz
I think the stdlib also gives you .mkString, which is less principled and only works for this one usecase.
Rich
@Rich2
When passing parameters to a super class is there anything wrong with putting a multiline code block in the superclass constructor?
Subclass(a: A, b: B) extends SuperClass({ stuff; stuff; result}, other parameters)
Jose C
@jmcardon
Aside from it being a little odd, I Don't think so
Martijn Hoekstra
@martijnhoekstra
it looks really dodgy to me, but I can't formulate why, so feel free to ignore my dodgy feelings
Jose C
@jmcardon
I don't know why you'd do a calculation to pass a parameter though
It seems like a really strange thing to do
but I've actually never even seen anyone do that so I can't even call it an anti-pattern