Делать числовые функции экземпляром Num?
Я хочу иметь возможность составлять числовые функции в haskell, используя бинарные операторы. Так, например, с унарными числовыми функциями:
f*g
следует перевести на:
\x -> (f x)*(g x)
и аналогично для сложения. Заставить вашего собственного оператора сделать это довольно просто, но я бы очень хотел сделатьNum a => a -> a
функционирует экземпляр Num, но я не уверен, как это сделать.
Я также хотел бы сделать этот универсальный arity, но это может быть слишком проблематично из-за того, как сложно выполнять универсальные функции arity в Haskell, так что может быть лучше определить отдельныеNum a => a -> a -> a
, Num a => a -> a -> a -> a
и т. д. ... экземпляров до некоторого достаточно большого числа.