Haskell函数的参数数量

Mar*_*gen 3 haskell

当我尝试用ghc它来编译它时,抱怨函数定义左侧的参数数量是不同的.

module Example where

import Data.Maybe

from_maybe :: a -> Maybe a -> a
from_maybe a Nothing = a
from_maybe _ = Data.Maybe.fromJust
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是一个ghc限制.我试着看看我是否能找到关于Haskell 2010报告中参数数量的任何信息,但我没有成功.

这是合法的Haskell还是不是吗?如果没有,列出的参数计数限制在哪里?

mel*_*ene 18

这不合法.Haskell 2010报告中描述了该限制 :

4.4.3.1功能绑定

[...]

请注意,定义函数的所有子句必须是连续的,并且每个子句中的模式数必须相同.