问题描述
我正在处理序言中的字符串,我想避免在规则中使用过多的临时变量。
我想改变这样的东西:
process_str(Str,Next) :-
is_valid_pattern0(Pattern0),concat(Pattern0,Tail0,Str),concat("->",Tail1,Tail0),is_valid_pattern1(Pattern1),concat(Pattern1,Tail2,Tail1),concat("|",Next).
使用串联运算符定义,如下所示:
process_str(Pattern0.."->"..Pattern1.."|"..Next,is_valid_pattern1(Pattern1).
我相信它将更具可读性,但要根据定义运算符的方式多做一些操作。
我发现文档讨论的是defining operators,但据我所知,只能定义谓词运算符,而不能定义可以“返回值”的函数运算符(例如+
运算符)。
请告诉我为什么我错了,或者如何定义这样的串联运算符。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)