| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Функциональные языки: общие вопросы > Комбинатор раскрытия, есть??? |
| Автор: Sajtran 13.1.2013, 10:25 |
| Добрый день всем, вопрос теоретикам Существует ли комбинатор-функтор раскрытия (назвал как мог) в Хаскеле или других ленивых языках? Как он должен выглядеть: OCombinator g (A1 A2 A3 A4) = g A1 A2 A3 A4 Собственно он мне нужен для разбора функций. Например, для символьного вычисления производной, |
| Автор: Ryukzak 3.4.2013, 10:54 | ||
| Правильно ли я понял, что речь идёт о apply как в lisp-е? Где можно написать (f a b c) либо (apply f '(a b c)). Если так, то основная проблема такой функции - её тип. Ответы можно искать в следующих направления: 1. GADT - все варианты аргументов функций необходимо свести к одному типу и использовать. Такое решение не может быть универсальным и будет работать только на функциях использующих ваш тип. 2. Расширения вокруг kind-ов - работы с типом выражений типа.
|
| Автор: dlebedev 11.4.2013, 11:58 |
| Давайте начнем с маленького. Какой тип должен иметь этот ваш комбинатор? |
| Автор: Sajtran 1.9.2014, 11:41 | ||||
опс, и почему здесь уведомления не стоят по идее что то вроде пары он должен возвращать
"Комбинатор неподвижной точки" тоже вроде как типа не имеет например, простая задача из физики есть функция f(x1,x2,..) погрешность её расчёта считается d f = [ (dx1* д f/д x1 )^2+ (dx2*д f/д x2)^2+..]^0.5 , где д - частная производная было бы удобно получить функцию расчёта погрешности не напрягаясь? d f = ... where ( dx1=0.3, dx2= 0.1, ..) ? |