Erlang模式与函数匹配

Pin*_*juh 5 erlang function pattern-matching

由于Erlang是一种几乎纯粹的函数式编程语言,我想这是可能的:

case X of
    foo(Z) -> ...
end.
Run Code Online (Sandbox Code Playgroud)

其中foo(Z)可判定可逆的纯(无副作用)双射函数,例如:

foo(input) -> output.
Run Code Online (Sandbox Code Playgroud)

然后,在这种情况下X = output,Z将匹配为input.

在Erlang中是否可以使用这种语义,有或没有其他语法,而不是我的例子?

rvi*_*ing 1

不,Erlang 只支持文字模式!

而你最初的要求并不容易。仅仅因为存在逆元并不意味着它很容易找到。实际上,编译器必须创建两个版本的函数。