Evening, Andrei. Andrei Sosnin <[EMAIL PROTECTED]> 02:11 11/1/2003 wrote:
>> AS> int function(int x, int (*what_to_do)(int pnt), int point, int >> value); >> AS> int function2(int x); >> Вопросы: >> 1)Что надо сделать, чтобы решение работало для произвольных функций a -> b, >> а не только для функций int -> int? При этом, решение должно быть type >> safe. AS> В С это не предусмотрено. Зато предусмотрено в С++ (по крайней мере, AS> косвенно). Ну и где же пример? :) AS> Так, что такое функция? - Я понимаю так: это некоторое выражение вида: [skip] AS> Но зачем может быть необходимо функции возвращать не собственное AS> значение, а другую функцию? (Это противоречит моему пониманию функции, Для реализации более общих решений в более общих терминах. AS> которое со школьной скамьи всем известно, и этого парадокса не AS> понимаю) Как математически это можно представить? Все несколько сложнее... Ключевые слова - функционал, теория вычислений, лямбда-исчисление, частичное применение, ... >> Понимание того, как важна простота и читаемость кода приходит обычно в >> процессе работы с legacy кодом на >100000 строк на С .... AS> Да уж оно и так понятно. :-) Я не понимаю, как некоторые AS> парадоксальные (противоречащие традиционному пониманию) особенности AS> (как возвращение функции функцией) могут помочь с читаемостью и AS> простотой кода? В первую очередь, с читаемостью? Конечно, я понимаю, AS> что с привычкой это становится легче, но... Признаюсь честно, в данный AS> момент я остального решительно не понимаю. :-) Ну, для начала можно порекомендовать почитать что-то про closures и continuations, например ... Тут уже упоминали книжку Фоккера - там, вроде, было множество хороших примеров. Есть еще Structure and Interpretation of Computer Programs (если я не ошибаюсь, первое издание доступно в эл. виде) -- Dmitry Astapov //ADEpt E-mail: [EMAIL PROTECTED] GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498 2B08 7867 4860 F5D7 639D