metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-01-08 07:33 pm
Entry tags:

Знаете ли вы, что

Scala - это Haskell в жабьей шкуре?

Если кложура сразу видна как лисп и не совсем мейнстримный язык, то скала замаскирована жабьей шкуркой от зоркого ока менеджеров, чтобы к тому времени, как до них дойдет, во что они вляпались - было уже поздно.

Язык знатно безумный, я почти Programming in Scala дочитал. И кое-какие вещи там сильно похожи на решение некоторых проблем с наследованием и зависимостями типов друг от друга, которых мне не хватало в дельфи и дотнетах :)

[identity profile] isorecursive.livejournal.com 2013-01-09 06:19 pm (UTC)(link)
Смотря каких. Например, типизация сдвигов в delimited-продолжениях есть.
А IO и ST нету, но если говорить о хаскеле, то такого как там не сильно и хочется.
Неразглаживаемый из выражений (>>=) - это очень и очень неудобно. Ну кому приятно постоянно писать
x <- a n
y <- a k
if (x `op` y)
  a j =: z

вместо
if (a n `op` a k)
  a j =: z

[identity profile] thesz.livejournal.com 2013-01-09 06:42 pm (UTC)(link)
>if (a n `op` a k)

Я от такого отказался, когда мне было 23 года. 18 лет тому назад.

Это натурально неудобно при отладке и рассуждениях о программе.

Плюс, вы не знаете про ifThenElse.

[identity profile] isorecursive.livejournal.com 2013-01-09 06:47 pm (UTC)(link)
Под "a n" я подразумевал всего-лишь взятие элемента массива в ST.

[identity profile] thesz.livejournal.com 2013-01-09 07:30 pm (UTC)(link)
Это вообще делается комбинаторами, если часто делается.

Не забывайте, Хаскель ленивый по умолчанию. Поэтому гораздо более ссылочно прозрачный, чем Scala.

[identity profile] thesz.livejournal.com 2013-01-09 06:43 pm (UTC)(link)
А, и внутри STM можно удалить файл.

Так что нет типизации эффектов в Скале, нету. Нетуточки.