|
|
|
Sajtran |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.10.2008 Где: Мегион Репутация: нет Всего: 2 |
Добрый день всем, вопрос теоретикам
Существует ли комбинатор-функтор раскрытия (назвал как мог) в Хаскеле или других ленивых языках? Как он должен выглядеть: OCombinator g (A1 A2 A3 A4) = g A1 A2 A3 A4 Собственно он мне нужен для разбора функций. Например, для символьного вычисления производной, |
|||
|
||||
Ryukzak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 12.9.2006 Репутация: 1 Всего: 1 |
Правильно ли я понял, что речь идёт о apply как в lisp-е? Где можно написать (f a b c) либо (apply f '(a b c)).
Если так, то основная проблема такой функции - её тип. Ответы можно искать в следующих направления: 1. GADT - все варианты аргументов функций необходимо свести к одному типу и использовать. Такое решение не может быть универсальным и будет работать только на функциях использующих ваш тип. 2. Расширения вокруг kind-ов - работы с типом выражений типа.
|
|||
|
||||
beroal |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Вам нужен исходный код функции? Его можно получить с помощью парсинга исходного кода — Hackage.haskell-src или Template Haskell. По-моему, это выходит за рамки языка и уж точно не имеет отношения к комбинаторной логике. |
|||
|
||||
dlebedev |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.4.2012 Репутация: нет Всего: нет |
Давайте начнем с маленького. Какой тип должен иметь этот ваш комбинатор?
|
|||
|
||||
Sajtran |
|
||||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.10.2008 Где: Мегион Репутация: нет Всего: 2 |
опс, и почему здесь уведомления не стоят по идее что то вроде пары он должен возвращать
"Комбинатор неподвижной точки" тоже вроде как типа не имеет например, простая задача из физики есть функция f(x1,x2,..) погрешность её расчёта считается d f = [ (dx1* д f/д x1 )^2+ (dx2*д f/д x2)^2+..]^0.5 , где д - частная производная было бы удобно получить функцию расчёта погрешности не напрягаясь? d f = ... where ( dx1=0.3, dx2= 0.1, ..) ? Это сообщение отредактировал(а) Sajtran - 1.9.2014, 12:03 |
||||
|
|||||
Правила форума «Функциональные языки: общие вопросы» | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |