关于函数 eq 的一点疑问
根据 spl 官方函数文档,eq 函数用于判断一个序列能否通过另外一个序列经调整位置后置换得到。
比如,数列 [1,2,3] 可以通过数列 [3,1,2] 调整位置后得到,所以 [1,2,3].eq([3,1,2]) 返回 true;
再比如,纯文本序列 (为了省事,文本均省略了双引号),[s,p,l].eq([s,l,p]) 返回 true。
以上例子恰当,好懂,结果是显而易见的。
我在想,如果序列中有英文且有大小写,那 eq 函数就不适用了,比如,
[S,P,L].eq([s,p,l]) 或者
[Structure,process,language].eq([Process,LANGUAGE,structure])
甚至是嵌套的两层序列之间的比较,纯数列,纯文本序列,或者混合序列,比如,
[[1,2],[3,4],[5,6]].eq([[3,4],[1,2],[5,6]]) 返回 true
[[1,2],[3,4],[5,6]].eq([[4,3],[2,1],[5,6]]) 返回 false
很明显,这些特例不符合 eq 的定义。我在想,既然是比较相同,除了调整位置,应该也要比较元素,所以:
1、是否可以忽略英文大小写进行 eq 比较;
2、两层序列中的元素是否可以进一步 eq 后,再返回整体的 eq。
上述疑问我想了好几天,10 有 89 是我想多了。但在我接触过的浅显了解过的其他编程语言中,好像没有类似 eq 的功能。所以,抱着学习的心态还是发帖问一下比较好,省得惦记。
恳请大佬们得闲时给予指导解惑,谢谢!
发生实际需求再说了,这可能是随手造出来的多余函数,基本没有被用过,删掉应该也不碍事。
删掉岂不是可惜了😄 我记得用到过一次。
就像上个月恢复使用的两个函数 accumulate 和 proportion,用到的时候就是利器。
望勿删!!🙏 🙏