Scala

Nov. 6th, 2012 04:15 am
metaclass: (Default)
[personal profile] metaclass
Читаю книжку Одерского, до основной шизы еще не добрался, но такое ощущение, что в скале чрезмерно много синтаксического сахара. Типа "тут вы можете скобки опустить, а тут вместо скобок использовать фигурные скобки, а тут мы прямо в параметрах класса сделаем их полями, а в multiline string literal вы можете сделать отступ и stripMargin" и прочая и прочая в том же духе.
Основное из этого, видимо - function literals и вызов методов в стиле a methodName b, без точек и скобок, что делает код более лаконичным, одновременно позволяя при желании превратить код в нечитабельный ад.

Заодно по наводке [livejournal.com profile] jdevelop глянул на http://spray.io/ https://github.com/spray/spray/wiki
Примеры там, конечно, знатный abuse возможностей языка и вычислений на типах, типа extraction-директив с HList в качестве параметра типа.

Clojure по сравнению с этим выглядит более простой и логичной, хотя я не уверен, можно ли сравнивать совершенно разные языки, общего у которых только функциональщина и иммутабельность иногда.

PS: Вот, к примеру:
https://github.com/spray/spray/blob/master/docs/documentation/spray-routing/code/docs/HttpServiceExamplesSpec.scala

В SimpleService HttpResponse реализован как html-код написанный прямо внутри скала-кода. Сижу уже 30 минут ищу, где это преобразование реализовано и как. Т.е. не видя отдельных литералов и их типов (которые без загрузки всего оного кода с зависимостями в IDE/интерпретатор еще и не увидишь), с ходу догадаться, что происходит, достаточно сложно. XML literals, встроенные в язык и где-то implicit для конверсии.

PPS: implicit evidence:
http://jim-mcbeath.blogspot.com/2008/11/scala-type-infix-operators.html
http://stackoverflow.com/questions/3427345/what-do-and-mean-in-scala-2-8-and-where-are-they-documented

По-моему, это уже достаточно сложно, чтобы увлечь психов и стать новыми крестиками. Вот [livejournal.com profile] xeno_by еще приделает макросы - и совсем хорошо станет.

Date: 2012-11-06 02:00 am (UTC)

Date: 2012-11-06 05:03 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Что скала - это такой С++ для JVM, давно уже говорят. И еще больше будут. Нагромождение фич не способствует простоте.

Date: 2012-11-06 05:43 am (UTC)
From: [identity profile] isorecursive.livejournal.com
@ в скале чрезмерно много синтаксического сахара
Ну, по сравнению с лиспами, согласен.

@ вызов методов в стиле a methodName b, без точек и скобок,
Я для себя решил использовать это, если methodName match {
case [слово] (например, "getOrElse") => только в тривиальных выражениях (например, состоящих из одной аппликации)
case [оператор] (например, ">>", "+", "<*>") => всегда
}

@ По-моему, это уже достаточно сложно, чтобы увлечь психов и стать новыми крестиками
В крестиках же нет ничего прогрессивного и полезного. Там "психи" делают тривиальные вещи замороченными трюками.
По мне, если что-то сложное используется для решения каких-то сложных задач - это нормально, если для простых - изврат.

@ type-infix-operators
Есть в хаскеле и, можно сказать, во всех ml-подобных функциональных языках ("->" в "f: a -> b").

@ implicit evidence
Конструктивный теорем-прувинг по Карри-Говарду аля Агда. Это же хорошо, что такие вещи потихоньку начинают внедрять ИРЛ.
Да и вообще, хаскельные тайпклассы и агдовые/скальные имплициты - это (наконец-то) использование типов для более интересных вещей чем просто статическая верификация структурных инвариантов.
Edited Date: 2012-11-06 06:16 am (UTC)

Date: 2012-11-06 08:39 am (UTC)
From: [identity profile] xeno-by.livejournal.com
Спасибо за примеры. Они неплохо подчеркивают то, что я хотел сказать, но не знал в каком контексте это представить.

Есть куча высказываний на тему "я попытался сделать в Скале как в Хаскелле и получилась какая-то фигня". Эти высказывания многими считаются критикой Скалы. Но в обратную сторону это почему-то не работает. "Я попытался сделать в Хаскелле трейты как в Скале и получилась какая-то фигня" - такого в интернетах не видел ни разу.

Date: 2012-11-06 09:20 am (UTC)
From: [identity profile] migmit.livejournal.com
Ну, собственно, и "я попытался сделать в C++ как в Хаскелле и получилась какая-то фигня" тоже предостаточно, а вот наоборот - не видел.

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 09:33 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 09:57 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 11:11 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 11:13 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 05:00 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 05:38 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 08:03 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 09:06 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 09:51 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 10:38 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 11:04 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 01:30 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-11 05:26 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 08:26 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-06 10:15 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 11:03 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-06 11:43 am (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-17 03:49 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-12-17 08:25 pm (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-18 10:51 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-12-18 11:53 am (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-19 11:06 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-12-19 12:19 pm (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-19 07:48 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-12-19 08:24 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-12-19 08:37 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 10:05 am (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-19 11:29 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-12-19 11:32 am (UTC) - Expand

(no subject)

From: [identity profile] udpn.livejournal.com - Date: 2012-12-19 12:16 pm (UTC) - Expand

Date: 2012-11-06 06:24 am (UTC)
From: [identity profile] evil-invader.livejournal.com
Согласен. Начал изучать скалу, потому что не хватало функциональщины в джаве (скучно стало, душа просит). Но как только узнал, что собираются добавить в java 8, то теперь уже особой надобности (для себя) в скала я не вижу. Интересная штучка, но не более.

Date: 2012-11-06 07:41 am (UTC)
From: [identity profile] jakobz.livejournal.com
О, почитал. Из Java будут делать C#. Как показывает практика, получается ничего так - ФП не сильно расползается, можно давать индусне.

(no subject)

From: [identity profile] evil-invader.livejournal.com - Date: 2012-11-06 08:40 am (UTC) - Expand

Date: 2012-11-06 08:42 am (UTC)
From: [identity profile] xeno-by.livejournal.com
А можно подробнее про что именно впечатлило в джаве 8? Только лямбды или что-то еще?

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

(no subject)

From: [identity profile] evil-invader.livejournal.com - Date: 2012-11-06 12:24 pm (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:05 pm (UTC) - Expand

(no subject)

From: [identity profile] evil-invader.livejournal.com - Date: 2012-11-06 01:14 pm (UTC) - Expand

(no subject)

From: [identity profile] stdray.livejournal.com - Date: 2012-11-06 08:04 pm (UTC) - Expand
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] xeno_by referenced to your post from Насчет сложности Скалы и причем здесь макросы (http://xeno-by.livejournal.com/79953.html) saying: [...] ительную реакцию по поводу сложности Скалы. Уважаемые френды отпостились у себя в бложеках: раз [...]

Date: 2012-11-06 10:06 am (UTC)
From: [identity profile] divine-assass1n.livejournal.com
Читаю ту же книгу. Для того, что в скалу насували, нормально получилось. Значительная часть синтаксиса и не синтаксис вовсе, а вызовы методов

Something(...) это вызов метода apply на companion object
Something(...) = ... это вызов метода update на companion object

Map(1 => 2, 3 => 4) опять же не какой-то особый синтаксис, 3 => 4 это 3.=>(4), который возвращает tuple (3,4)

И так далее, можно продолжать

Date: 2012-11-06 10:14 am (UTC)
From: [identity profile] divine-assass1n.livejournal.com
впрочем, да, это не лисп :)
основательная такая хрень получилась

Date: 2012-11-06 05:52 pm (UTC)
From: [identity profile] golikov konstantine (from livejournal.com)
Вообще Map(1 => 2, 3 => 4) не сработает

Map(1 -> 2, 3 -> 4)

"=>" это про другое

(no subject)

From: [identity profile] divine-assass1n.livejournal.com - Date: 2012-11-06 05:53 pm (UTC) - Expand

Date: 2012-11-06 10:07 am (UTC)
From: [identity profile] sum-erman.livejournal.com
Сей пост чуть менее чем полностью передаёт мои ощущения от языка. Добавлю что паттерн матчинг в его нынешнем виде неудобен и многословен, а необходимость указывать типы во вложенных функциях это просто садизм :)

Date: 2012-11-06 10:16 am (UTC)
From: [identity profile] divine-assass1n.livejournal.com
я приятно удивился, что он там вобще есть, но конечно с эрланговским pattern matching ему не сравнится

(no subject)

From: [identity profile] golikov konstantine - Date: 2012-11-06 06:10 pm (UTC) - Expand

(no subject)

From: [identity profile] divine-assass1n.livejournal.com - Date: 2012-11-06 06:21 pm (UTC) - Expand

(no subject)

From: [identity profile] golikov konstantine - Date: 2012-11-06 06:30 pm (UTC) - Expand

(no subject)

From: [identity profile] divine-assass1n.livejournal.com - Date: 2012-11-06 06:38 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 09:13 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-11-06 09:22 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 09:28 pm (UTC) - Expand

(no subject)

From: [identity profile] golikov konstantine - Date: 2012-11-06 10:45 pm (UTC) - Expand

(no subject)

From: [identity profile] andy legkiy - Date: 2012-11-06 11:19 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 08:23 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 08:37 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 08:52 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 09:00 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 09:33 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 09:46 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 10:01 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 10:07 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 10:32 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 10:45 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 11:22 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 12:36 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 01:54 pm (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 12:38 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 01:05 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 01:53 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-11-07 02:12 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 02:29 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 03:38 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 04:09 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 06:32 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 07:10 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 07:33 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-07 07:47 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-09 04:20 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-09 09:25 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-10 09:37 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-10 10:45 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-11 12:57 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 01:23 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-11 03:10 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 10:04 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-11 03:31 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 10:18 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-12 05:47 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-12 06:27 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-12 08:55 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-12 09:00 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-12 11:46 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-12 07:25 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-13 02:23 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-13 04:19 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-14 03:46 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-14 08:21 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2012-11-15 04:46 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-15 10:21 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-15 12:21 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-15 08:44 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-16 02:12 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-16 08:31 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-16 09:54 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-16 11:00 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-16 11:36 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-16 01:08 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-16 01:45 pm (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-16 05:47 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-17 03:41 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-17 04:05 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-17 07:18 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-17 06:01 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-18 04:03 am (UTC) - Expand

(no subject)

From: [identity profile] migmit.livejournal.com - Date: 2012-11-18 11:11 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-25 12:53 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-13 10:20 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-14 03:49 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-14 08:29 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-15 04:54 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-15 08:53 am (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2012-11-15 09:16 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-15 10:54 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-15 12:01 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-11 03:38 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 01:29 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2012-11-11 03:01 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-11-07 10:34 am (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 11:02 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 11:31 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-07 11:31 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 01:34 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-11 08:25 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 10:09 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-11 10:12 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-11 11:04 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 09:30 pm (UTC) - Expand

Date: 2012-11-06 11:02 am (UTC)
From: [identity profile] xeno-by.livejournal.com
Можете.пожалуйста пояснить что не так с паттерн матчингом?

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 11:12 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 11:15 am (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 11:22 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 11:42 am (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 11:47 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:07 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 01:24 pm (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:32 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 01:37 pm (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:45 pm (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:46 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 08:46 pm (UTC) - Expand

(no subject)

From: [identity profile] isorecursive.livejournal.com - Date: 2012-11-07 03:12 am (UTC) - Expand

(no subject)

From: [identity profile] xeno-by.livejournal.com - Date: 2012-11-06 01:43 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 09:09 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2012-11-06 01:03 pm (UTC) - Expand

(no subject)

From: [identity profile] golikov konstantine - Date: 2012-11-06 05:57 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2012-11-06 10:42 pm (UTC) - Expand

Date: 2012-11-06 06:24 pm (UTC)
From: [identity profile] golikov konstantine (from livejournal.com)
"а необходимость указывать типы во вложенных функциях"
можно вот тут поподробней?

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 07:21 pm (UTC) - Expand

(no subject)

From: [identity profile] golikov konstantine - Date: 2012-11-06 07:24 pm (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2012-11-06 08:23 pm (UTC) - Expand

Date: 2012-11-06 01:41 pm (UTC)
From: [identity profile] v-l-a-d.livejournal.com
>в скале чрезмерно много синтаксического сахара

ну если сравнивать с AST-дампом компилятора в виде S-выражений, то да, действительно много:)
а если с каким-нибудь хипсторуби - то вполне ок

Date: 2012-11-06 01:45 pm (UTC)
From: [identity profile] sum-erman.livejournal.com
В хипсторуби — меньше

Date: 2012-11-06 02:22 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Вот к руби оно неоправданно близко :)

Date: 2012-11-06 02:25 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Все так, но самая главная сложность - сочетание ООП с функциональщиной, тут тебе и обычные классы, и алгебраические типы, и ленивость и хер знает что еще. В руби сахара тоже полно, но там он не мешает, очередной ОО-язык осваивается за неделю.

Date: 2012-11-07 08:38 am (UTC)
From: [identity profile] divine-assass1n.livejournal.com
http://ro-che.info/ccc/17.html :)

Scala: Call-by-Need

Date: 2012-11-07 03:57 pm (UTC)
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] isorecursive referenced to your post from Scala: Call-by-Need (http://isorecursive.livejournal.com/1482.html) saying: [...] Во время дискуссии [...]

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 2nd, 2025 01:38 pm
Powered by Dreamwidth Studios