gpt4 book ai didi

functional-programming - or-like feature in case … of statement?或者更通用的模式?

转载 作者:行者123 更新时间:2023-12-04 00:18:05 24 4
gpt4 key购买 nike

我学习 Erlang 已经有一段时间了,为了学习它,我正在编写一个 IRC 机器人。这个 IRC 机器人应该听取“!command”和“Nick: command”形式的命令。我预先解析了 IRC 协议(protocol),所以我只需要匹配发送消息。我正在使用这样的二进制模式来执行此操作:

case Msg of
[Nick, _, <<"PRIVMSG">>, <<"#",Channel/binary>>, <<"!rock">>] ->
irckybot_api:privmsg(<<"#",Channel/binary>>, [Nick, choose_hand(rock)]),
{ok, State};
[Nick, _, <<"PRIVMSG">>, <<"#",Channel/binary>>, <<BNick:Len/binary,": rock">>] ->
irckybot_api:privmsg(<<"#",Channel/binary>>, [Nick, choose_hand(rock)]),
{ok, State};
end

我必须为此编写两个模式,对吗?我不能将两种模式合并为一个吗?也许有更通用的模式?我真的不知道……

LG, CK

最佳答案

我想它可以更好地写成:

case Msg of
[Nick, _, <<"PRIVMSG">>, <<"#",Channel/binary>>, X] ->
case X of
<<"!rock">> -> ....;
<<BNick:Len/binary,": rock">> -> .......
end;
_ -> .......
end

关于functional-programming - or-like feature in case … of statement?或者更通用的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com