Цитата:
там не 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.