(no subject)
Oct. 5th, 2011 10:23 pmЧитая про LISP-овую CLOS и то что в ней можно определять новые методы для классов вне определения самих классов (а иначе никак), внезапно пришла в голову мысль, что сначала в статически типизированных языках типа Java и C# эту возможность закопали - а потом в C# ее выкопали обратно, в виде extension methods. Кругами ходит народ, определенно.
Еще позабавили specifiers :before, :after и :around - чувствут, что с их помощью можно либо написать что-то полезно, либо взорвать мозг коллегам, которым это читать - либо и то и другое одновременно.
Но в целом пока я как-то не прочувствовал сложность/элегантность LISP - как-то исходники Boost и Real World Haskell мне казались (каждое в свое время) посложнее. Насчет элегантности, видимо, нужно почитать еще On Lisp, и сырцы боевых проектов.
Update: уточнение по поводу элегантности - язык в целом элегантен, одни lisp forms и REPL чего только стоят. Вопрос скорее к практическому применению в задачах.
Еще позабавили specifiers :before, :after и :around - чувствут, что с их помощью можно либо написать что-то полезно, либо взорвать мозг коллегам, которым это читать - либо и то и другое одновременно.
Но в целом пока я как-то не прочувствовал сложность/элегантность LISP - как-то исходники Boost и Real World Haskell мне казались (каждое в свое время) посложнее. Насчет элегантности, видимо, нужно почитать еще On Lisp, и сырцы боевых проектов.
Update: уточнение по поводу элегантности - язык в целом элегантен, одни lisp forms и REPL чего только стоят. Вопрос скорее к практическому применению в задачах.