LINUX.ORG.RU

5-й номер журнала «Практика функционального программирования»

 , , , , , ,


0

0

Вышел новый, пятый номер журнала «Практика функционального программирования». В новом номере опубликованы следующие статьи:

  • Инструменты интроспекции в Erlang/OTP. Максим Трескин
  • Экономия ошибок. С. Зефиров, А. Сафронов, В. Шабанов, Е. Мельников
  • Введение в F#. Евгений Лазин, Максим Моисеев, Давид Сорокин
  • Лисп — философия разработки. Всеволод Дёмкин, Александр Манзюк
  • Оптимизирующие парсер-комбинаторы. Дмитрий Попов
  • Модель типизации Хиндли — Милнера и пример её реализации на языке Haskell. Роман Душкин

Также в этом номере опубликованы результаты конкурса, который был объявлен в 3-м номере журнала.

>>> Подробности

★★★★★

Проверено: maxcom ()

Ответ на: комментарий от www_linux_org_ru

а ты на картинку хоть глянул? там период полупотери интереса к лиспу (а-ля период полураспада) около 2.5 лет

А что на неё смотреть, если там только с 2004? Интересно смотреть с AI winter.

mv ★★★★★
()
Ответ на: комментарий от Miguel

>> гы. ты только добавляешь мне вдохновения :-)

Извини, мозгов не получается.

спасибо, поржал

давай лучше обсудим задачу на тему «что добавить в формулировку, чтобы прикрыть читерство»

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от Sun-ch

Я хотел сказать, что еще 18 лет назад уже была свободная законченная реализация лиспа, на основе кода которой и начался проект sbcl


для этого нужно было:

* заплатить туеву кучу денег для учебы в университете
* стать студентом CS
* получить доступ к SunОS и железу
* можно начать юзать бажный, еще на тот момент, (без библиотек) свободный лисп

CL-USER
()
Ответ на: комментарий от archimag

А при чем тут Xlib бакэнд там может быть любой, например ps, pdf, и нативная графика MS Windows. А вот сама спецификация CLIM 2.0 - отличный образец как надо проектировать менеджеры интерфейсов.

Sun-ch
()
Ответ на: комментарий от CL-USER

стать студентом CS

Этого достаточно, чтобы получить доступ компьютеру с самой последней версией коммерческого лиспа.

Sun-ch
()
Ответ на: комментарий от mv

> Вот. Как видно, как раз с того самого 1998 начался рост, а до этого, практически, горизонтальная прямая.

там сам по себе трафик небольшой, и поэтому слишком много шума; надо бы привести по 1 числу на язык для каждого года

а рост там общий для всех, с запаздыванием для лиспа примерно в 3 года

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от CL-USER

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

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Я хотел сказать, что еще 18 лет назад уже была

свободная законченная реализация лиспа


Угу, только что бы скомпилировать это дело нужно было быть одним из разработчиков (ибо хрен разберёшься), а что бы запустить была нужна SunOS. Конечно, это небольшие проблемы... А тем временем Python, который появился в свободном доступен примерно в тоже время, мог собрать и запустить любой желающий на x86. Угу.

Но кроме вменяемой реализации (а CMUCL не является ей и сейчас) нужна ещё среда разработки, такая как SLIME (в состав невменяемого CMUCL входил невменяемый Hemlock - это не в счёт), которой тоже не было, а без неё теряется добрая половина преимуществ CL.

Вот и получается, что обычные разработчики получили возможность нормально, без супер-усилий и специфичного железа использовать CL только кода этак с 2003-2004.

archimag ★★★
()
Ответ на: комментарий от Sun-ch

> И вообще в то время, университет предоставлял доступ к своим

компьютерам достаточно легко, даже школьникам из колледжей.


Даже если так (ничего про это не знаю), что с того? Для популяризации языка нужна возможность легко использовать его дома и на работе, а трахаться с чужим софтом на чужих серверах.

archimag ★★★
()
Ответ на: комментарий от Miguel

> http://www.linux.org.ru/forum/development/4300872

я не врубаюсь, как ты применишь подход «последовательно» к задаче

(a+b+c+d+e).scalar_product(a+e+d+b+c)

здесь предполагается, что длина e отлична от длины b (и вообще у всех разная), и равной длина становится только после самого последнего сложения

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от Sun-ch

> И вообще в то время, университет предоставлял доступ к своим компьютерам достаточно легко, даже школьникам из колледжей.

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

CL-USER
()
Ответ на: комментарий от CL-USER

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

ага, щаз

у самого хранится книжка R-лисп, изданная в 199х (вероятно даже в 1993)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от CL-USER

Путь хаккера в описании Эрика Ричмонда «С->Perl->Lisp». К тому же сам папа Столлман приложил руку так сказать.

Sun-ch
()
Ответ на: комментарий от www_linux_org_ru

> у самого хранится книжка R-лисп, изданная в 199х

(вероятно даже в 1993)


Разве R-лисп это Common Lisp? Но дело даже не в этом, какой прок от книги про язык, если ты не можешь запускать программы на нём написанные?

archimag ★★★
()
Ответ на: комментарий от Sun-ch

> хаккера

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от Sun-ch

> Когда все уже забыли нахрен, кому и зачем это нужно.

Не все. Но в чём мысль то? Что ты хочешь сказать?

archimag ★★★
()
Ответ на: комментарий от archimag

> Разве R-лисп это Common Lisp?

конечно нет — пафос в том, что даже и по редким разновидностям можно было купить книгу, а не из «научных статей» узнать

Но дело даже не в этом, какой прок от книги про язык, если ты не можешь запускать программы на нём написанные?

возможно, Reduce была на общедоступных машинках (а-ля ИБМ 360) у нас в универе, но точно не скажу — меня лисп тогда не интересовал

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от r

>Там правда про гетерогенный тайпсейф список, но все же по теме. Но это как бы все-таки читинг:)

где там читинг??? (и гетерогенный тайпсейф список уже 100 лет как пишется на плюсах, хотя может в скале добавили плюшек к этому, не знаю)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

> пафос в том, что даже и по редким разновидностям можно было

купить книгу, а не из «научных статей» узнать


Наоборот, раньше было дохрена и больше разновидностей лиспа, и что Common Lisp это и есть самая лучшая надо было узнавать из научных статей. При этом, не каждый лисп, достоин внимания, а накопившийся отрицательный опыт работы с разными разновидностями лиспа отталкивал и от Common Lisp.

archimag ★★★
()
Ответ на: комментарий от www_linux_org_ru

> возможно, Reduce была на общедоступных машинках (а-ля ИБМ 360) у нас в универе, но точно не скажу — меня лисп тогда не интересовал

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

www_linux_org_ru ★★★★★
()

> Модуль eintro, содержащий код функций-обёрток, написан автором статьи и доступен на сайте журнала\footnote{TODO}.

Когда будет? Или уже есть? Мне не по глазам.

Werehuman ★★
()
Ответ на: комментарий от Sun-ch

> Да все изучено еще 10 лет назад никакого развития нет. Хотя да, появились Qi и newLisp.

Это ты зря, clojure - это STM, а STM придумали совсем недавно.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

Пока дошел до такой фазы:

object vector {
   sealed trait DVector[T <: DVector[T]]

   class DNil extends DVector[DNil] {
      def ::( v: Int ) = DCons( v, this )
   }

   val DNil = new DNil

   case class DCons[T <: DVector[T]]( head: Int, tail: T ) extends DVector[DCons[T]] {
      def ::( v: Int ) = DCons( v, this )
   }

   def scalarf[T <: DVector[T], R <: DVector[R]]( v1: T, v2: T, f: (Int, Int) => Int ) = null

}

//работает
scalarf( 1 :: 2 :: DNil, 1 :: 2 :: DNil, ( _ + _ ) )

//ошибка компиляции
scalarf( 1 :: DNil, 1 :: 2 :: DNil, ( _ + _ ) )

error: inferred type arguments [vector.DCons[_ >: vector.DCons[vector.DNil] with vector.DNil <: ScalaObject with vector.DVector[_ >: vector.DCons[vector.DNil] with vector.DNil <: ScalaObject with vector.DVector[_ >: vector.DCons[vector.DNil] with vector.DNil <: ScalaObject with vector.DVector[_ >: vector.DCons[vector.DNil] with vector.DNil <: ScalaObject]]]],Nothing] do not conform to method scalarf's type parameter bounds [T <: vector.DVector[T],R <: vector.DVector[R]]
scalarf( 1 :: DNil, 1 :: 2 :: DNil, ( _ + _ ) )

Проголодался. Потом попробую дальше разобраться.

r ★★★★★
()

хорош спорить, лисп рулит адово! на лиспе написана америкоская semi-automated aviation scheduling/dispatching system, а вы говорите проектов нет на лиспе. Да вы просто про них не знаете ;)

lg ★★
()
Ответ на: комментарий от www_linux_org_ru

>где там читинг???

Читинг там в том что это как бы не задуманный first class citizen языка, а половые извращения с системой типов - достаточно посмотреть как делается return type для append и по что он после этого превратился. Я как раз на return type скаляра и застрял - уже попробовал четыре разных варианта. Придется больше голову сломать:)

r ★★★★★
()
Ответ на: комментарий от CL-USER

>ЛИСП ... до сих пор впереди планеты всей.

Nested Data Parallelism?

Использование GPU (вообще, гетерогенных высокопараллельных систем) в рядовых программах?

anonymous
()
Ответ на: комментарий от Rastafarra

>> CL в данном решении и есть императивщина.

хм... в секте лиспоидов развал и шатание какое-то. некоторые полагают, что там «функционала на строку раз в 5-10 больше».

Глупый чтоли? Слова «функционал» != «функциональщина»

yoghurt ★★★★★
()
Ответ на: комментарий от mv

Вот. Как видно, как раз с того самого 1998 начался рост, а до этого, практически, горизонтальная прямая.

Как раз-таки в 2005 году был максимум потом пошло на спад.

http://groups.google.com/group/comp.lang.lisp/about

1987  	 38  	 72  	 43  	 13  	 41  	 28  	 57  	 60  	 44  	 38  	 34  	 115  	  
1988 	66 	45 	41 	68 	58 	60 	58 	59 	49 	81 	42 	66 	 
1989 	89 	84 	108 	105 	142 	68 	81 	94 	138 	107 	178 	97 	 
1990 	107 	107 	138 	152 	90 	95 	76 	81 	162 	162 	119 	75 	 
1991 	200 	236 	137 	172 	125 	171 	170 	149 	129 	180 	122 	46 	 
1992 	175 	224 	225 	238 	169 	221 	199 	195 	213 	207 	210 	138 	 
1993 	282 	325 	177 	272 	264 	184 	243 	240 	132 	129 	163 	162 	 
1994 	187 	232 	264 	254 	255 	345 	478 	595 	464 	456 	480 	338 	 
1995 	342 	298 	318 	197 	279 	287 	218 	418 	213 	345 	211 	217 	 
1996 	249 	302 	211 	190 	229 	161 	304 	269 	466 	489 	496 	484 	 
1997 	551 	776 	432 	1281 	982 	374 	600 	538 	537 	525 	622 	350 	 
1998 	322 	300 	521 	384 	545 	594 	393 	374 	608 	1050 	986 	998 	 
1999 	737 	764 	1179 	824 	838 	793 	1937 	1348 	1121 	1217 	1118 	528 	 
2000 	910 	1460 	1741 	1192 	806 	1279 	769 	1233 	783 	1180 	1557 	1266 	 
2001 	1321 	1018 	1338 	744 	1808 	1382 	1249 	1503 	1848 	1748 	2617 	1791 	 
2002 	2162 	2028 	3038 	1886 	1683 	1776 	1057 	1886 	3315 	2786 	2436 	1901 	 
2003 	1365 	1404 	1819 	2339 	3159 	1513 	1595 	1980 	1942 	4518 	3042 	1587 	 
2004 	2255 	2643 	2934 	2459 	2614 	1770 	1272 	2177 	2103 	3114 	2270 	1650 	 
2005 	2221 	1955 	2249 	3176 	2396 	2389 	2368 	2698 	2327 	2535 	2305 	2146 	 
2006 	2940 	2592 	2219 	2601 	2095 	2284 	2263 	2449 	2050 	1539 	1995 	3059 	 
2007 	1339 	1237 	1463 	1551 	2440 	1928 	2354 	2621 	1670 	2241 	1828 	1956 	 
2008 	2451 	2017 	2458 	1973 	1660 	1374 	1448 	1559 	1532 	1608 	1342 	1698 	 
2009 	1619 	2143 	1745 	1649 	2551 	1586 	2014 	1570 	1622 	2083 	1209 	1408 	 
2010 	1486 	780 	1554 	960 	825 	  	  	
anonymous
()
Ответ на: комментарий от CL-USER

>можно начать юзать бажный, еще на тот момент, (без библиотек) свободный лисп

1991 - год написания GHC, компилятора Хаскеля. Свободного. Бажного и без библиотек.

Есть ли у Лиспа что-либо наподобие hackage?

http://hackage.haskell.org/packages/hackage.html

anonymous
()
Ответ на: комментарий от CL-USER

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

4.2

Книгу «Мир Лиспа» финских авторов я прочитал в 1991-м году, будучи старшеклассником. Эта книга была в свободном доступе. При желании ее можно было найти в библиотеке.

dave ★★★★★
()
Ответ на: комментарий от dave

а что толку? я ее тоже прочитал в школе (кстати в библиотеке самая зашореная книжка была). Но попробовать-то негде было. ни железа ни компилятора/интерпретатора.

CL-USER
()
Ответ на: комментарий от CL-USER

да и лисп тот был, чуть ли не из конца 50х. а мы говорим здесь про коммон лисп.

CL-USER
()
Ответ на: комментарий от Miguel

А - я так же делал на скале. Только в скале тип результата рекурсивной функции компилятор вывести не может - потому плясок с бубнами больше.

r ★★★★★
()
Ответ на: комментарий от CL-USER

> я ее тоже прочитал в школе (кстати в библиотеке самая зашореная книжка была). Но попробовать-то негде было. ни железа ни компилятора/интерпретатора.

Было :) Был xlisp для DOS.

tailgunner ★★★★★
()

Хочешь узнать, что Бог думает о лиспе? Посмотри на лисперов. © Зефиров (емнип)

anonymous
()
Ответ на: комментарий от archimag

Почему-то никак не могу представить себе приверженца C++/Java/Erlang/Python, который пытается доказать, что на его любимом языке можно что-то реальное писать, решать действительное прикладные задачи. Вот никак не представляется и всё. Но за лиспером, делающим то же самое, далеко ходить не надо.

anonymous
()
Ответ на: комментарий от anonymous

> Почему-то никак не могу представить

Ну, батенька, фантазию надо развивать, это полезно ;)

Но за лиспером, делающим то же самое, далеко ходить не надо.


И о чем это говорит? В чём мысль?

archimag ★★★
()
Ответ на: комментарий от anonymous
1987 468        -
1988 627        -
1989 1194       --
1990 1289       ---
1991 1791       ----
1992 2276       -----
1993 2411       ------
1994 4010       ----------
1995 3126       -------
1996 3365       --------
1997 7218       ------------------
1998 6077       ---------------
1999 11876      -----------------------------
2000 12910      --------------------------------
2001 16576      -----------------------------------------
2002 24053      ------------------------------------------------------------
2003 24676      -------------------------------------------------------------
2004 25611      ----------------------------------------------------------------
2005 26619      ------------------------------------------------------------------
2006 25027      --------------------------------------------------------------
2007 20672      ---------------------------------------------------
2008 19422      ------------------------------------------------
2009 19791      -------------------------------------------------
2010 11431      ----------------------------

прогноз на 2010 делался по формуле (1486 + 780 + 1554 + 960 + 825)*19797/(1619 + 2143 + 1745 + 1649 + 2551) от 2009 года

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от archimag

> И о чем это говорит? В чём мысль?

классика жанра: когда у всех все просто работает и задачи выполняются в рабочем порядке, лисперы писают кипятком а-ля «смотрите все! я Это сделал на лиспе!!!»...

Rastafarra ★★★★
()
Ответ на: комментарий от Rastafarra

> лисперы писают кипятком а-ля «смотрите все!

я Это сделал на лиспе!!!»...


И? Какой-нибудь осмысленный вывод будет сегодня?

P.S. Кстати, если не брать в расчёт программистов на C++ и Java, то подобное характерно для всех когда язык используется вне традиционной области применения. Но не суть.

archimag ★★★
()

Интересный номер. Спасибо.

smh ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.