Prologをさわってみる
どうも仕事の関係上、一階述語論理やら自由文脈文法やらの単語が飛び出してくるので、これを機会にPrologで遊んでみようかと思います。
FreeBSDのPortsから、SWI-Prolog(lang/swi-pl)をインストール。
を参考にクイックソートを動かしてみる。
qsort([], R, R). qsort([X|L], R, R0) :- partition(L, X, L1, L2), qsort(L2, R1, R0), qsort(L1, R, [X|R1]). partition([], _, [], []). partition([X|L], Y, [X|L1], L2) :- X =< Y, !, partition(L, Y, L1, L2). partition([X|L], Y, L1, [X|L2]) :- partition(L, Y, L1, L2).
う、動いたけど、コードの内容を理解するのに30分かかった… orz