c++ / lisp

Sep 29, 2006 18:29

написал трехэтажное bind выражение. подумал, выкинул нах. понял как написать макросом на лиспе, отсюда вывод? :)

laugh, programming

Leave a comment

Comments 7

tony2001 September 29 2006, 14:38:25 UTC
.. нах такие выражения.

Reply


mr_aleph September 29 2006, 15:21:04 UTC
функциональному программированию --- функциональный язык.

Reply

kulmas September 29 2006, 16:11:11 UTC
функциональным программистам - топор в спину ;))

Reply

antoxa September 29 2006, 20:37:53 UTC
оно только местами функциональное, да и лисп не только фукциональный язык. :)

Reply

mr_aleph September 30 2006, 03:24:44 UTC
да-да я понимаю. (я тут читаю SICP... правда на русском и с бумаги.)
но все эти метапрограммные костыли C++, они конечно изящны. но все равно сильно много изящных костылей - плохо.

Reply


alnsn October 2 2006, 07:51:17 UTC
И что? И там и там много закрывающихся скобок в конце, но в лиспе нет слов bind и &Class::foo ?
Короче, делись кодом, позырим ;-)

Reply

antoxa October 2 2006, 09:42:03 UTC
кодом наверное не поделюсь, но там ситуация была, что надо было "обойти/решить" forwarding problem, если я правильно все понимаю. т.е. есть набор функций(с разными сигнатурами, но одним return type) и структура, из которой можно выдернуть параметры для вызова любой из таких функций.
и есть две code paths, 1. call just now. 2. defer the call with fetched parameters.
требование: не хочется дублировать код выдергивания параметров для функции.

соотв, у тебя есть набор функций типа таких:

result_type function_a(big_structure const& data)
{
return some_other_function_a(data.param1, data.param2); /* вот этот код надо "обощить" */
}

как в таком варианте дальше либо надо напрямую вызвать соответствующую some_other_function_a
либо сделать на нее bind для последующего вызова.
ничего лучше

template result_type call_with_continuation(big_structire const& data, ContinuationF const& cont ( ... )

Reply


Leave a comment

Up