У меня есть эта функция, которая извлекает четвертый элемент, который бывает целое число, из кортежа:функция Pointfree для сгиба левой операции
fourth :: (a, b, c, Int) -> Int
fourth (a, b, c, d) = d
Я хочу суммировать все четвертые целые числа в список кортежи. Я могу использовать fourth
внутри сгиба правой операции, сочиняя его (+)
в подходящую foldr
оператора:
summerRight :: (a, b, c, Int) -> Int -> Int
summerRight tuple n = fourth tuple + n
все это можно записать pointfree:
summerRight = (+) . fourth
Теперь, если я хочу, чтобы выразить сумма как складной склад, мне нужен оператор:
summerLeft :: Int -> (a, b, c, Int) -> Int
summerLeft n tuple = n + fourth tuple
Мне не удается написать эту последнюю функцию.
Можно ли написать summerLeft
pointfree?
Если это не так, есть ли какая-то возможная аргументация, которая связывает сбрасывание вправо с помощью программирования с нулевой точкой?
Мммм, это напоминает мне о молочница комбинатора TxY = уг. Похож на общий подход. Спасибо. –