2023/3/29 13:47:00
『Prologによる解法知識を用いた誤答解説文付き多肢選択問題の生成』
2024/7/26 22:13:00
SWI-Prolog / npm-swipl-wasm
2024/6/12 12:11:00
prologをクエリをJavaScriptの関数化
2024/6/12 11:58:00
あれ
2024/6/2 14:26:00
- 課題感
- Prologだと個体と述語に名前をつけないといけない
- 「名前」は異なる個体を指示したいにも関わらず衝突する
- 解決策
- 単語ベクトルや、文章ベクトルを個体や述語の名前として扱う
- 余談
- Prologの演算で得られたベクトルをLLMにぶち込めたら面白そう
- Prologプログラムの実行で得られたベクトルをNNで自然言語に翻訳できると面白そう
あれ
2024/6/1 15:55:00
aRbをProlog的に考えてみる。
Rb(a)と表すことができる。つまり、鳥である(鳩) のようになる。
bを主語化すればR(a,b)と表すことができる。すなわち、である(鳩,鳥) となる。、
Rを主語化すればX(a,R,b)と表すことができる。つまり、X(鳩,である,鳥) となる。
このXが何者なのかはわからない。命題?文?
あれ
2024/5/15 7:38:00
Prologだと6行でクイックソートがかけるのヤバすぎる。
qsort([], []).
qsort([X], [X]).
qsort([X | L], L1) :- separate(X, L, UpperList, LowerList), qsort(UpperList, UpperListSorted), qsort(LowerList, LowerListSorted), flatten([LowerListSorted, [X], UpperListSorted], L1).
separate(X, [], [], []).
separate(X, [Y | L], [Y | UpperList], LowerList) :- X =< Y, separate(X ,L, UpperList, LowerList).
separate(X, [Y | L], UpperList, [Y | LowerList]) :- X > Y, separate(X ,L, UpperList, LowerList).
memberを使えばseparateをもう1行減らせそう。と思ったが、上手くいかなかった。
あれ
2024/5/15 1:07:00
Prologだと4行のコードでソート作れるのヤバすぎる。
% 空リストは昇順
ordered([]).
% 要素が一つのリストは昇順
ordered([_]).
% 先頭2つの要素が昇順 かつ 2番目以降の要素が昇順のリストは昇順
ordered([X, Y|T]) :- X =< Y, ordered([Y|T]).
% 全順列のうち、昇順になっているものは、ソートされている
mysort(L, L1) :- permutation(L, L1), ordered(L1).
あれ
2024/5/8 17:54:00
今日Prologを久々にやってたたんだけど、やっぱりPrologは「Zen」って感じする。
悟ると超短いコードで問題が解けるけど、悟れなければ何も得られない、みたいな。
『法律家のためのコンピュータ利用法: 論理プログラミング入門』
2024/3/25 4:11:00
あれ
2023/9/23 12:25:00
わたしの中でProlog(というか述語論理)が復権しそうな気配を見せている。
GraphQL的なAPI記述言語としてなんかこう、、、やってけませんかね。