У меня есть кортеж значений, представляющих некоторое состояние, и вы хотите перевести его добавлением (сдвигом). Мои ценности являются более длинная версия (Int, [Int], Int), и я хочу что-то концептуально (но не в буквальном смысле), как это:Haskell - применить кортеж функций к кортежу значений?
shift n = ??? (+n) (id, map, id) -- simple(?)
, который был бы эквивалентен:
shift n (a, b, c) = (a+n, map (+n) b, c+n)
Я рад просто пойти с этим явным использованием функции, но задавался вопросом, что существует более идиоматическая бесконтактная версия, использующая аппликативные или стрелки или ..., или если они просто заканчивают запутывание вещей. Я думал, что в бесконтактной версии более четко показана основная структура операции.
Thanks; Я знаю, что могу это сделать, и, возможно, это «лучшее» решение, но если для этого нет текущих операторов, так лучше всего написать эту функцию. Я думал о чем-то вроде обобщения ***. – guthrie