Saturday, November 27, 2010

Scala: higher-kinded types

Оказывается, в Скале есть higher-kinded types - или, говоря по-русски, параметрический полиморфизм высшего порядка.

Я прочел по Скале две книжки.

  1. Martin Odersky, Lex Spoon, and Bill Venners Programming in Scala. A comprehensive step-by-step guide. http://www.artima.com/shop/programming_in_scala
  2. Dean Wampler and Alex Payne. Programming Scala.  http://programming-scala.labs.oreilly.com
Ни в одной не описаны higher-kinded types. В первой правда, они упоминаются, но только в одном единственном месте - в указателе. И все!



Сейчас читаю третью книгу:
  • Christos KK Loverdos and Apostolos Syropoulos. Steps in Scala - An introduction to object-functional programming. http://stepsinscala.com
Там упоминается лишь, что в Скале пока что нет higher-rank types (параметрический полиморфизм высшего ранга). Но не упоминается, что в Скале есть higher-kinded types.

Умора.

Попытка разобраться как написан следующий кусок кода (анаморфизм, хиломорфизм, катаморфизм) и выявила существование higher-kinded types в Скале.

4 comments:

  1. Интересно откуда такой код?

    ReplyDelete
  2. Код взят из книжки, которая цитирует следующую статью:

    Bruno C.d.S. Oliveira and Jeremy Gibbons. 2008. Scala for generic programmers. In Proceedings of the ACM SIGPLAN workshop on Generic programming (WGP '08). ACM, New York, NY, USA, 25-36. DOI=10.1145/1411318.1411323 http://doi.acm.org/10.1145/1411318.1411323

    http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/scalagp.pdf

    Статья полезная.

    ReplyDelete
  3. Информацию по параметрическому полиморфизму высшего порядка в Scala и прочим интересным вещам можно найти на этой странице: http://www.scala-lang.org/node/143

    ReplyDelete
  4. Кстати, во втором издании книжки Одерского с коллегами ничего не поменялось, кроме ссылки на сайт второго издания:
    "higher-kinded types, see http:// booksites.artima.com/programming_in_scala_2ed "

    ReplyDelete