Я хотел бы определить функцию, которая работает с выражением определенного типа, но имеет доступ к ее внутренней структуре, если она есть. Так, например, е в дальнейшем:Соответствие шаблону Haskell внутри круглых скобок
g :: a -> a -> a
g x y = y
f :: a -> a
f x'@(g x y) = x'
f _ = 1
(г х у) имеет тип а, так что е должны быть в состоянии принять его в качестве аргумента, но определение F выше, не может быть проанализирован с помощью Haskell. Я хотел бы определить что-то вроде f, чтобы воспользоваться оценкой по имени. Есть ли способ сделать это в Haskell?
Вы просто не можете этого сделать, потому что система типа не допускает этого. Но не заботьтесь! Haskell ленив и не будет оценивать аргумент, если он явно не нужен, поэтому его по-разному «по имени» по умолчанию. – Mephy
'g' не является конструктором, поэтому вы не можете сопоставить его. Что вы на самом деле пытаетесь сделать? –