Описание тега partial-application
Частичное приложение - это метод программирования, при котором в функцию передается меньше, чем полное число аргументов, чтобы получить новую функцию, которую можно использовать позже. Это особенно часто встречается в функциональных языках, поддерживающих каррирование.
1
ответ
Упорядоченное уменьшение для нескольких функций в Python
Упорядоченный список сокращения Мне нужно сократить некоторые списки, в которых, в зависимости от типов элементов, скорость и реализация двоичной операции различаются, то есть можно добиться значительного снижения скорости, уменьшив сначала нескольк…
12 апр '16 в 12:32
2
ответа
Композиция функций - Haskell
Опять же, еще один вопрос, вызванный моими попытками ответить на вопросы проекта Эйлера ( следуйте из предыдущего вопроса). У меня проблемы с пониманием следующей строки: print (maximum (map (product . take 13) (tails number))) конкретно map (produc…
17 авг '14 в 13:17
2
ответа
Конфиденциальность в JavaScript
Функция scoping предлагает единственную конфиденциальность в JavaScript. Итак, каноническое: function Ctor(dep1, dep2) { this._dep1 = dep1; this._dep2 = dep2; } Ctor.prototype.foo = function() { // use this._dep1/2... } ... проблематично в том, что …
15 июн '16 в 12:44
1
ответ
Для оптимизированного карри необходим стиль без точек
Скажем, у нас есть (надуманная) функция, например: import Data.List (sort) contrived :: Ord a => [a] -> [a] -> [a] contrived a b = (sort a) ++ b И мы частично применяем его для использования в других местах, например: map (contrived [3,2,1]…
21 янв '17 в 08:16
0
ответов
Частичное приложение для списка функций
Как вы частично применяете список функций? Следующий минимальный пример: def myprint (a, b): выведите 'a: '+str(a)+', b: '+str(b) l1=[лямбда x: myprint ('x', x), лямбда y:myprint('y',y)] l2=[] для f в l1: l2.append(лямбда: F () '!') для г в l2: г() …
05 окт '15 в 09:54
6
ответов
Частичное применение функций и карри, как сделать лучший код вместо большого количества карт?
Я новичок в Haskell, и я пытаюсь понять это. У меня возникла следующая проблема: У меня есть функция, которая получает 5 параметров, скажем, f x y w z a = x - y - w - z - a И я хотел бы применить его, только меняя переменную x от 1 в 10 в то время к…
10 окт '15 в 03:23
3
ответа
Является ли "a -> b -> (a -> b -> c) -> c" для применения двух параметров стандартной функциональной концепцией?
Наткнулся на необходимость функции с подписью 'a -> 'b -> ('a -> 'b -> 'c) -> 'c использовать для применения двух аргументов при конвейере: let apply2 x y f = f x y Мне это нужно, потому что я использую функцию myFun : MyType -> Ty…
03 май '18 в 06:17
3
ответа
Не могу понять результат вызова функции высокого порядка, предоставленной с частично не примененной функцией в качестве аргумента
У меня есть объявление функции высокого порядка, чтобы применить функцию, заданную в качестве аргумента дважды: twice :: (a -> a) -> a -> a twice f x = f (f x) Беспорядок прибывает из этой сессии GHCi: *Main> let _4 = twice twice *Main&g…
28 окт '18 в 23:10
1
ответ
Унифицированный интерфейс между функциями с разным количеством аргументов
У меня есть две функции, подобные этим: foo :: a -> b -> x -> x bar :: c -> y -> y Я хотел бы объединить их в единый интерфейс, чтобы они оба могли иметь одинаковое имя. В моем случае это гарантировано, что типы x а также y разные (но…
22 июл '18 в 04:18
3
ответа
Как можно пойти карри?
В функциональном программировании любит Haskell, я могу определить функцию add a b = a+b затем add 3 вернет функцию, которая принимает один параметр и вернет 3 + something Как я могу сделать это в GO? Когда я определяю функцию, которая принимает бол…
16 окт '13 в 03:45
2
ответа
Python: Могу ли я частично применить приёмник с помощью инициализатора?
initializer приходит после iterable, Это вызывает проблемы для частичного применения. Рассмотрим эти (тривиальные) примеры: In [1]: from functools import reduce, partial In [2]: f = partial(reduce, lambda a,b: a+b, 100) In [3]: f([1,2,3]) ----------…
09 апр '18 в 02:11
2
ответа
functools.partial хочет использовать позиционный аргумент в качестве ключевого аргумента
Поэтому я пытаюсь понять partial: import functools def f(x,y) : print x+y g0 = functools.partial( f, 3 ) g0(1) 4 # Works as expected В: g1 = functools.partial( f, y=3 ) g1(1) 4 # Works as expected В: g2 = functools.partial( f, x=3 ) g2(1) TypeError:…
15 июл '14 в 10:10
1
ответ
Как я могу выразить частичное применение функции в Typescript 3.x безопасным для типов способом?
Я работаю над кодовой базой Angular, которая выполняет некоторую стандартную постобработку для большинства вызовов API. Это делается в классе обслуживания, который переносит HttpClient.get() и т.д. в методах, которые передают возвращаемое наблюдаемо…
04 дек '18 в 17:31
2
ответа
Как использовать functools.partial с os.path.join?
Есть список путей + имена файлов, все начинаются с того же root_dir, Как использовать частичное? попытка from os.path import join as path_join from functools import partial from tempfile import gettempdir root_dir = gettempdir() root_join = partial(…
12 фев '15 в 11:58
1
ответ
Как сделать так, чтобы скрипты Bash ссылались на локальные файлы
Моя конкретная проблема Моя цель - предоставить утилиту командной строки для преобразования файлов PowerPoint в PDF-файлы. Я пробовал решения, которые используют unoconv, но они не выполняют преобразование должным образом. Я нашел хороший рабочий п…
31 янв '19 в 18:52
1
ответ
Приложение с частичной функцией Haskell с $
Я новичок в Haskell и смотрю на простой пример использования приложения функции с $, Это кажется простым - он берет функцию и применяет ее к значению. Так что это имеет смысл: > (+3) $ 2 5 Это также имеет смысл: > ($) (+3) 2 5 Это имеет смысл,…
02 фев '19 в 08:02
13
ответов
Можно ли частично применить второй аргумент функции, которая не принимает аргументов с ключевыми словами?
Возьмите для примера встроенный питон pow() функция. xs = [1,2,3,4,5,6,7,8] from functools import partial list(map(partial(pow,2),xs)) >>> [2, 4, 8, 16, 32, 128, 256] но как бы я поднял х до степени 2? получить [1, 4, 9, 16, 25, 49, 64] lis…
23 июн '12 в 22:58
1
ответ
Как автоматически передавать аргументы в LiveScript
Как я могу упростить строку 3 (свойство onChange): Input do name: \input onChange: (event, value) ~> @limitInput { type: \string }, event, value
31 мар '17 в 15:04
1
ответ
Разве карта не принимает функцию, а список возвращает список?
map2_List :: (a -> b -> c) -> [a] -> [b] -> [c] map2_List f [] _ = [] map2_List f (a:as) bs = map (f a) bs ++ map2_List f as bs Это пример из моей лекции, в котором я пытаюсь применить бинарную функцию ко всем парам элементов двух спи…
03 авг '18 в 22:41
1
ответ
Аргументы типа сигнатуры статического метода и частичное применение
В последнее время я изучаю функциональное программирование и хочу донести некоторые концепции до C# Мир. Я пытаюсь составить функции для создания служб (или как бы вы их ни называли) вместо создания классов с инъекционными зависимостями. Я придумал …
01 июн '18 в 08:41