scala wtf

Mar. 24th, 2014 05:18 pm
juan_gandhi: (VP)
[personal profile] juan_gandhi
scala> val m = Map("a"->1, "b"->2, "c"->2)
m: scala.collection.immutable.Map[String,Int] = Map(a -> 1, b -> 2, c -> 2)

scala> val m1=m map {case (x,y) => (y,x)}
m1: scala.collection.immutable.Map[Int,String] = Map(1 -> a, 2 -> c)

Date: 2014-03-25 01:09 am (UTC)
From: [identity profile] smalgin.livejournal.com
Последняя пара с ключом 2 переписала предыдущую.
А что ожидалось от map? Что он будет умным задним числом и создаст Multimap?

А что будет, если
scala> val m = MultiMap("a"->1, "b"->2, "c"->2)
scala> val m1=m map {case (x,y) => (y,x)}

?
(нету сейчас Scala под рукой)


Date: 2014-03-25 02:18 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Я MultiMap никогда не использовал; даже не в курсе, есть ли оно в скале.

Date: 2014-03-25 05:32 pm (UTC)
From: [identity profile] eliah lakhin (from livejournal.com)
Есть, но она ущербная довольно. Кажется прямо так и определяется как алиас Map[A, Set[B]]. Причем, кажется, он еще и мутабельный. Иммутабельного аналога нет.
Edited Date: 2014-03-25 05:35 pm (UTC)

Date: 2014-03-25 01:18 pm (UTC)
From: [identity profile] migmit.livejournal.com
Видимо, wtf состоит в наличии метода map.

Date: 2014-03-25 05:34 pm (UTC)
From: [identity profile] eliah lakhin (from livejournal.com)
Ну, мое личное имхо, что разумнее было бы map применять на TraversableOnce, и не приводить к подтипу, но это же Скала. :)

Date: 2014-03-25 05:30 pm (UTC)
From: [identity profile] eliah lakhin (from livejournal.com)
А в чем подвох? Вроде же все правильно, не?

Date: 2014-03-25 10:10 pm (UTC)
From: [identity profile] http://users.livejournal.com/_windwalker_/
Кто последний встал, того и тапочки. Правда с хера тогда такая мапа объявляется immutable ?
Но вообще забавно, что в API записано для этого момента по поводу мап...

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 07:35 pm
Powered by Dreamwidth Studios