FR wrote:
> K>>Тут эмоции тоже через край. Лучше бы упомянули хоть одно
> умопомрачительное новшество.
>
> LCR>Verb trains, tacit form, loop-free programming. А из известных "code
> is data is code", функции высшего порядка и т.п.
>
> А можно чуть подробнее первое предложение разъяснить?
Первые два — это отличные, в чём-то новаторские реализации того, что
есть в идеализированном ФП. Правильная константа, как иногда оказывается
— это константная функция (она кстати, возвращает себя), поэтому
применение функции к функции даст композицию. Они формализовали это
чуть-чуть по-другому, чтобы это было удобнее. "* + -" — это функция,
складывающая произведение и разность.
tacit form — оно же fixed-point, оно же программирование без явного
указания аргумента за счёт функций высшего порядка. Опять-таки, язык под
это заточен, иногда (если привыкнуть) результат бывает приятнее, чем
обычные виды записи. См. также Haskell.
loop-free — это просто идея того, что при сложении массивов цикл на
интерпретаторе писать не стоит, пусть его сделает оптимизированное ядро,
а парсер воспримет как одно действие. Опять же хорошо продумано и описано.
Я не отрицаю, что реализации содержат семантические улучшения, которых
нигде более я не видел, кроме как в одном семействе языков. Но, всё же
идеи использовались и раньше и позже. Часто — использовались хуже.
www.jsoftware.com — если хотите деталей.
Posted via RSDN NNTP Server 2.1 beta