當我的朋友在學校開始學習Prolog時,我嘲笑他學習一門毫無用處的語言。然而,他向我展示了一些我從未知道的東西;我想知道這種技術來自哪裏。多功能語言中的多線程? (Prolog)
該技術是這樣的:
permutation(List) :-
isAMember(X, List),
deleteFirstElement(X, List, Substring),
% and so on
在此代碼,isAMember(X, List)
是如果X
是在List
,則返回true的函數。但是,到目前爲止X
沒有被定義爲變量 - 因此程序會產生一堆新線程,其中每個可能的值爲X
,這使得isAMember(X, List)
爲真,並從那裏繼續。
這使我們能夠以最簡單,最優雅的方式創建一個多線程算法,我可以想像這是可能的。
所以我的問題是:這是Prolog特有的,還是所有邏輯和/或功能語言的特徵?另外,我在哪裏可以學到更多令人驚喜的多線程技術 - 這肯定是編程的未來。
我想說編程就是這樣開始的!非確定性圖靈機有這個概念。 – 2010-02-01 03:51:19
序言不是一個功能lanauge。它擅長解決邏輯問題。 – Francis 2010-02-01 03:54:28