Показать сообщение отдельно
Старый 12.12.2009, 22:31   #50  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
там не List comprehension, a есть linq - можно его условно считать monad comprehension.
А вот это linq ?

X++:
IEnumerable<int> numbers = Enumerable.Range(0, 10);
var evens = from num in numbers where num % 2 == 0 select num;
То есть, что такая возможность есть я знаю, а вот к чему она там относится - нет.

Цитата:
То, что у нас есть в аксапте втроенный relational table comprehension ведь не сильно затрудняет разработку? Я бы сказал даже, что облегчает.
Э... а что это ?

Цитата:
как выносит мозг LINQ?
Так и выносит, стоит чуть отойти от стандартных демо-примеров. Тут даже достаточно примеров от _scorp_. И именно поэтому MS развивает F# как экспериментальный язык программирования, а Гвидо грозится выкинуть lambda-функции из Python.

Цитата:
особенно просты
- макросы в схеме
А ими, в общем то, особо и не рекомендуют пользоваться до тех пор пока можно обойтись без них. Зато разобравшись с ними один раз, можно создавать удобный для себя DSL.

Цитата:
- лямбды в схеме
А чем они неудобнее люмбд в haskell?

Сравни - Haskell:

X++:
map (\(number)-> 1 + number) [1, 2, 3, 4]
и Scheme:

X++:
(map (lambda (number)
       (+ 1 number))
     '(1 2 3 4))
На мой взгляд одно и то же. По моему сложны лямбды, как логическая конструкция (а также ее производные - например, замыкания), а уж поняв эту конструкцию можно применять ее в любом языке программирования. И в Scheme они ничуть не сложнее чем в Haskell.