понедельник, 11 октября 2010 г.

[prog] Описание нововведений Scala 2.8: Named and Default Parameters и Type Constructor Polymorphism

Продолжается серия статей о нововведениях в Scala 2.8. На сей раз две статьи, которые опубликованы вне scala-lang.org:

Ранее были опубликованы:

Пару слов от себя. Сегодня пытался прочитать про Type Constructor Polymorphism. Сумел воспринять только какие-то отрывки из обрывков. Главным образом потому, что статья представляет из себя набор общих фраз и абстрактных примеров. Тогда как язык программирования (тем более претендующий на мейнстримность) предназначен для решения конкретных проблем. Посему пользователям языка нововведения нужно объяснять в буквальном смысле на пальцах. Вроде такого: вот у нас контейнер с апельсинами, а вот с яблоками. Мы хотим сделать сортировку по привлекательности внешнего вида, но беда в том, что типы разные, хоть и производные от какой-то базы… И бла-бла-бла с большим количеством примеров нормального, читабельного кода. До тех пор, пока этого не будет, Scala останется привлекательной для небольшого количества гиков, способных придти в восторг от конструкции:

scala> def foo[CC[x], El](xs: CC[El]): CC[El] = null.asInstanceOf[CC[El]]
foo: [CC[x],El](xs: CC[El])CC[El]

scala> foo(List(1,2,3))
res0: List[Int] = null

Отправить комментарий