我想用haskell写一个函数,它不介意我以什么顺序为其提供参数,例如,我想统一这两个函数
reproduce1 :: Male -> Female -> Child
reproduce2 :: Female -> Male -> Child
通过一个功能“复制”。
最佳答案
您可以使用多参数类型类来执行此操作。
{-# LANGUAGE MultiParamTypeClasses #-}
class Reproduce x y where
reproduce :: x -> y -> Child
instance Reproduce Male Female where
reproduce = reproduce1
instance Reproduce Female Male where
reproduce = reproduce2
但是,我很好奇您为什么要这样做。