13
Tôi đang cố gắng viết hàm thành phần hàm variadic. Về cơ bản, về cơ bản là (.)
, ngoại trừ hàm đối số thứ hai là variadic. Điều này sẽ cho phép biểu thức thích:Chức năng soạn thảo biến thể?
map even . zipWith (+)
hoặc chỉ
map even . zipWith
Hiện nay những gì tôi đã đạt đến công trình nếu tôi thêm IncoherentInstances
và đòi hỏi một trường hợp không đa hình cho hàm số đầu tiên.
{-# LANGUAGE FlexibleInstances, OverlappingInstances, MultiParamTypeClasses,
FunctionalDependencies, UndecidableInstances, KindSignatures #-}
class Comp a b c d | c -> d where
comp :: (a -> b) -> c -> d
instance Comp a b (a :: *) (b :: *) where
comp f g = f g
instance Comp c d b e => Comp c d (a -> b) (a -> e) where
comp f g = comp f . g
Mọi ý tưởng? Thậm chí có thể không?
bạn có thể giải thích một chút gì bạn có nghĩa là bởi thành phần "variadic chức năng "? có thể thêm một số ví dụ. –
Tôi đã làm rõ một chút trong bản chỉnh sửa cuối cùng. Bên cạnh đó, có gì sai với hai ví dụ? – is7s
Ồ, xin lỗi. Ví dụ là tốt. Nó không phải là hiển nhiên đối với tôi rằng họ không đánh máy. –