我知道在 Prolog 你可以做类似的事情
someFunction(List) :-
someOtherFunction(X, List)
doSomethingWith(X)
% and so on
这不会遍历 List 中的每个元素;相反,它将分支到不同的“机器” (通过使用多个线程,在单个线程上回溯,创建并行宇宙或你有什么),并为每个可能的 X 值单独执行导致someOtherFunction(X, List)
返回 true!
(我不知道它是如何做到的,但这对问题并不重要)
我的问题是: 还有哪些其他非确定性编程语言? 似乎非确定性是在具有不可变变量的语言中实现多线程的最简单和最合乎逻辑的方法,但我以前从未见过这样做 -为什么这种技术不更受欢迎?