1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:23:54 ] 過去スレ Prologでまったり Part3 pc11.2ch.net/test/read.cgi/tech/1193354806/ PrologでまったりPart 2 pc11.2ch.net/test/read.cgi/tech/1102664221/ Prolog でまったり pc5.2ch.net/test/read.cgi/tech/976462999/ リンク集 www.summa.jp/lang/logic/prolog.htm bach.istc.kobe-u.ac.jp/prolog/ チュートリアル www.amzi.com/AdventureInProlog/ computing.unn.ac.uk/staff/cgpb4/prologbook/ www.intranet.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html bach.istc.kobe-u.ac.jp/prolog/intro/ www.geocities.jp/m_hiroi/prolog/ www.asahi-net.or.jp/~JF1T-YSD/prologV2/
449 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 07:01:39 ] >>442 つまりまとめると、>>421 を書いた人は「一度しか現れない変数は間違いの兆候とみなされる」という原則を 意図的に無視したか、単に動作確認せずに書いて自己弁護しているかw、 ということでしょう
450 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 07:35:56 ] >>449 なんでそんなことが長々話題になってるのか解りません。 私の処理系ではWarningも出ないだけです。
451 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 07:57:19 ] それはなおさら興味深いじゃないですかw
452 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:10:09 ] >>448 に補足すると、 「一度しか使っていないことに気づかなかった」こと自体はどうでもよく、 単に「意図せず食い違いが生じた」ことを浮き彫りにするための手段になるということです。
453 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:11:09 ] >>451 ごめん。IF/Prolog自体はconsult時にWarningを出してました。 私のはもう一層上にインタプリタが被っているので。 というより、ご指摘どおり、今やってみただけで、処理系での動作確認などは 確かにしていません。 ただ、この話は私の書いた >>444->>445 に尽きると思いますが。
454 名前:444 445 453 mailto:sage [2009/07/23(木) 08:39:20 ] 済みません。間違ってたかな・・・ 虚変数というのはトップレベルになくてはいけないという定義だったかも。 cons3(A,B,C) :- A < B. の場合の C は虚変数だが、 cons3(A,[B|C]) :- A < B. の C は虚変数ではない、かな。 トップレベルってそういう解釈でいいのだろうか。
455 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 14:58:39 ] 虚変数という言葉は初耳ですが、要するに、 名前をつけただけで呼ばれることがない変数(の実体)は、 実行中に名前を覚えておく必要がない(「環境」から除外できる)ということでしょう。
456 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 15:04:39 ] いや、「名前」の問題だけではないか。 とにかく一定の処理を省略できるという特質があるということでは。
457 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 15:16:38 ] anonymous variable(「無名変数」、まれに「匿名変数」)の別名として、 void variableという、「虚変数」に近い言い方があるみたいですね。
458 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 15:31:17 ] >>454 なるほど、複合項の一部に持たせるときはその記憶領域が必要ですね。 某処理系のあのバグの本質はそういうことだったのか。。 勉強になりましたw
459 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 15:53:48 ] p(X) :- Y = [H|T].
460 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 23:55:54 ] >>446 ども、ありがとうです。>>445 みたいに使うのかな。 コメントでもいいような気もするけど。
461 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 09:06:42 ] よく考えると、自分が利用したのは、 ?- findall(_X,( _X = a ),L). のように問合せの中に使って、成功時に値を見なくていい変数であることを示す、 という効果だったような…。それは別の処理系だったかな…。
462 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 23:42:30 ] 亀レスすいません>>438 です >>437 さん レスがかなり遅れて申し訳ないです ちょっと違いますがそういう解釈してました >>442 で質問した[R] - singleton variables in user:con2/2 は皆さんが教えてくださったとおりwarningメッセージで実行には問題なかったです それとnoと出ていた件についてなんですが どうやら>>424 さんが質問してきた部分が上手くいっていなかったので noといわれていたみたいです con2(A,[B|_]) :- A < B. con2(A,[]). としたら一応は解は出たのですがなんだかループしている気がします・・・。 バックトラックを何回やってもnoにならない・・・。 ハノイの塔の3つのとき方ってそんなにあるんですかね?
463 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 00:42:28 ] >>462 > ハノイの塔の3つのとき方ってそんなにあるんですかね? 無限にあるよ
464 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 09:13:10 ] initial_state(hanoi, [[1],[],[]]). goal_state(hanoi, [[],[],[1]]). で考えると、 左→右 左→中→左→右 左→中→左→中→左→右 左→中→左→中→左→中→左→右 : こうなるんじゃないかな
465 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 09:18:10 ] 節の並べ方によっては 左→中→左→中→左→中→左→中→… と止まらなくなるおそれもあったのでは
466 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:00:08 ] >>462 です 15手順目位までは特に変わりは無かったのですがその後が変わっていってました 手順は20とか23でとまっていたので手順が雪だるま式に 増えるわけではないみたいです
467 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:38:21 ] 手元でやってみたら1872通りと出た。 ttp://www.research.att.com/~njas/sequences/A125295 > 1, 2, 12, 1872, 6563711232, 282779810171805015122254036992, というような数列になるらしいよ
468 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:11:17 ] >>467 さん ( ゚д゚)・・・・ みなさん長々とありがとうございました
469 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:54:24 ] okwave.jp/qa5100395.html > quicksort([A|B],C) :- > MLの説明に載っていたので、まさかMLでなくPrologだと思いませんでした。 > 助かりました。 気になる… 質問者の勘違いなのか説明の間違いなのかが気になる…
470 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:08:15 ] Prolog は凄いな。 複雑な式 A is B + foo(C * D) / 2 がそのままデータとして扱えるなんて。 新たな演算子を自分で作れるのも、 それを組み合わせて新しい文法が定義出来るのも (危ういと言えば危ういけど)凄いと思った。 LISP よりも Prolog の方が DSL 作るのに向いてるかも。
471 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:16:21 ] むしろProlog自体が異様に応用力の高いDSLなんじゃ、と思うことがある
472 名前:デフォルトの名無しさん [2009/08/05(水) 16:53:08 ] SWIなら「=..」なんていう反則述語もあるし ?- findall(A,hoge(A),AList) or ?- hoge(A),fail. でhogeが成り立つAを全部持ってこれるバックトラックの便利さも異常 それに、計算量を無視するならとても綺麗に書ける
473 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 17:50:47 ] >>472 =..(univ)はISO標準ですよ
474 名前:デフォルトの名無しさん [2009/08/05(水) 17:53:17 ] >>473 マジでw もはや一階述語じゃないISOなのかw
475 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 18:56:08 ] 制約(constraint)を扱える処理系ってどんなのがありますか?
476 名前:デフォルトの名無しさん [2009/08/05(水) 18:58:12 ] >>475 SWI-prolog
477 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 21:54:25 ] >>474 =..は一階述語ですよ
478 名前:デフォルトの名無しさん [2009/08/05(水) 22:58:18 ] >>477 あの述語自信はそうかも知れないけれど、 あの効果を許すとそうでなくなるのではと。 述語を作れる述語でしょ。
479 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 23:25:25 ] >>478 univは複合項とリストを単一化するだけで述語を作ったりはしませんよ
480 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 00:13:57 ] >474はfindallが一階述語じゃないこともわかってない気がする
481 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 01:42:14 ] 「述語を作る」という言い方は、微妙にややこしい。 論理式を作るのなら、Goal = p(X,Y)、Clause = (p :- q)などでもできる。 項と論理式を表面上区別しないから。
482 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:28:41 ] 例えば findall(A,hoge(A),AList) を論理的に考えてみると、 Findall(Hoge,x) ≡ ∀y[Hoge(y) ≡ Member(y,x)] みたいな二階述語になると思う。(あってる?) (=..)/2などで述語と引数をくっつけなくても、述語の引数にあたる変数を指定しさえすれば 高階の呼出しは表現できる、という例になっているんじゃないかな。 でもまあ言いたいことはわかるというか…。
483 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:38:39 ] > Findall(Hoge,x) ≡ ∀y[Hoge(y) ≡ Member(y,x)] これはリストの順序とか全く無視していてかなりしょっぱかった。今は反省している。
484 名前:デフォルトの名無しさん [2009/08/06(木) 04:43:20 ] >>480 ー481 うんそうなんだけれど、特定の述語で高階化されているというのはまあ、 そう言う機能とかAPI欲しいよねってことで納得できる 中でごにょごにょしてるんだろうと。 =..が変?なのは、述語記号そのものを変数化できるということ =..を使えば ∀X [X(Y, Z)] ってかけちゃうし なんか言ってること微妙に間違ってる気もするがまぁいいやw
485 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 08:16:16 ] よくわからんけど、 述語論理の述語変数(や述語記号、関数記号)には個々に変数の数が決まっていて、 そもそもPrologの述語名(や関数子)とは対応していないから、 findall/3のやり方の方が、見た目は違っても述語変数を再現できている面がある。 とにかく(=..)/3がなくても一階論理を超えまくっている以上、鍵のように言うのは変だよ。 高階論理風の見た目とPrologの高階性は違う、というか。
486 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 08:18:02 ] (=..)/3じゃないや。。
487 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 00:14:05 ] ?- alive(noriP). no
488 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 12:25:11 ] そんな推測に過ぎない節を登録しないで欲しいな…
489 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:23:59 ] え? 登録されていない事実だから、否定してるのでは?
490 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:25:26 ] なるほど。
491 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:30:07 ] ?- stayAt( noriP, Place ).
492 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:31:59 ] ?-guilty(noriP).
493 名前:デフォルトの名無しさん [2009/08/10(月) 13:32:34 ] >>486 が顔文字に見える
494 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:44:29 ] 自信なさそうに、ちょっとうつむき気味に挙手してるようにも見えるなw
495 名前:デフォルトの名無しさん [2009/08/18(火) 19:06:04 ] プロロげ!Prologer! ちょっとまったりし過ぎじゃないか?
496 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 20:39:31 ] レスもprolonger。
497 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:43:28 ] じゃあ別スレで出てきた覆面算でも ONE + NINE + TWENTY + FIFTY = EIGHTY
498 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:49:00 ] やってみたけど、多少枝刈りしても1分以内にはできなかった。 いや、普通の環境ならできるんだろうけどw
499 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 09:07:58 ] この数日、Haskellのスレで続いている副作用談義は勉強になる。 pc12.2ch.net/test/read.cgi/tech/1231861873/
500 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 07:29:44 ] 発刊予定日さらに延期。2010/4/16。 www.amazon.co.jp/gp/product/0321417461
501 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 20:35:51 ] prolonged...
502 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:55:24 ] 誰がうまいこと言えと
503 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:12:24 ] Prologってコーディング標準とかないのですかね? 標準でなくてもいいのですが、よく使われている規約などあれば教えてほしいのであります。
504 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 10:30:42 ] >>503 ICOTではあったと思うけれど、資料はないだろうな。Prologはほんの一部ですが。 その後は、各企業毎に多少は決められてるだろうけど、ほとんど「ない」と 言い切っていいレベルだと思います。
505 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:14:33 ] >>504 そうですか…ありがとうございます。
506 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 13:30:04 ] 私の場合は「散文的」でありたいと思ってるから、 そういう規則は設けないですね。
507 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 16:58:46 ] pc12.2ch.net/test/read.cgi/tech/1250204272/176 # [1]講座名:やさしいC言語 # [2] # (1) 「ようこそC言語へ」という文字列を表示し改行するコード # printf関数を使う。 # (2)「 ようこそC言語へ」と表示し改行してから「C言語をはじめましょう」 # と表示し改行するコード。ただしprintfは一回しか使ってはならない。
508 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:02:09 ] >>507 % Prolog t507(1) :- write_formatted('%t\n',[ようこそC言語へ]). t507(2) :- write_formatted('%t\n%t\n',[ようこそC言語へ,'C言語をはじめましょう']).
509 名前:デフォルトの名無しさん mailto:sage [2009/09/02(水) 17:05:57 ] 失礼、誤爆でした。>>507 と>>508 は「いろいろな言語で宿題スレ」に 書き込まなくていけなかった。錯覚しました。
510 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 18:59:49 ] ところで kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9925.txt こういう課題をProlog流に解釈して解答をつけるとすると、 どんなことになるのかな? Cの解答例としては kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9927.txt がある。
511 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:52:15 ] 世界の散文化はPrologでなされるのだろうか。
512 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 21:39:06 ] OS X 10.5.8にもSICS Prologってインストール可能だろうか?
513 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 10:07:56 ] 本家サイトくらい読めよ。 www.sics.se/isl/sicstuswww/site/download4.html www.sics.se/isl/sicstuswww/site/portability.html
514 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 10:28:45 ] なんですか偉そうに。かわりに読んでください。
515 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 12:59:50 ] どうしてそういう不安があるの
516 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 20:36:36 ] Mac OS X は、普通の Unix 系の OS だから、他の Unix 系の OS で動くアプリケーションなら、動くよ。 動かないのは、デバイスドライバとかの特殊なソフトウェアじゃないかな。 ただ、Mac OS X 用のアプリケーションは、他の OS じゃ動かないよ。 Mac OS X の独自機能だけを使ってアプリケーションを作るのが通例だろうから。
517 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:38:28 ] > Mac OS X は、普通の Unix 系の OS machスレッドはpthreadとお約束が違うので 微妙に動かなくなったりするけどな
518 名前:デフォルトの名無しさん [2009/10/01(木) 20:27:12 ] Prolog でやるエロゲー作ったら、みんな Prolog やるんじゃね? 俺は、エロゲーやらないけど
519 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 20:29:40 ] >>518 lisp ベースのゲームエンジンがあって、それを使ったゲームは そこそこ売れているんだけど、みんなlisp やんないよね
520 名前:デフォルトの名無しさん [2009/10/01(木) 20:39:50 ] >>519 それは、エンジンが lisp なんであって、lisp でやるわけじゃないんじゃ? 目に見えないと分からないでしょ。
521 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 20:42:59 ] Age of Empire の AI が Lisp ぽいという話はあったな
522 名前:デフォルトの名無しさん [2009/10/01(木) 21:27:19 ] そういうチラ見せじゃなくて、 コマンドラインで Prolog 打ったら、 女の子が反応したり、 女の子に新しい何かを覚えさせたり 出来るのを考えてた
523 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 21:37:43 ] 俺が喜ぶポーズを取ってみろ! と指令を出すと、登録してある嗜好データベースで演繹して そのシチュエーションでプレーヤーが一番喜ぶポーズを取る萌えキャラ。
524 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 03:51:46 ] subservient chickenみたいなものか
525 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:54:00 ] ? like(you, me). no. 〜 Fin
526 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:06:43 ] prologでSWAN SONG。 ピンポンピンポンピンポン!ってできたらいいなぁ。
527 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 23:16:07 ] SWI prolog はEmacsで使うとプロンプトが出ないんですが、 対処法はありますか?
528 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 23:22:37 ] Emacs22 + SWI-Prolog 5.7.15 on Linux で使ってるけどプロンプトでてるな。 環境は?昔、Windows上でつかってるときはなんか使い難かった記憶がある。 実用上問題はなかったのでそのまま使ってたけど。
529 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:46:19 ] >>528 Windows上でMeadow+SWI-Prolog(Version 5.6.62)です。 実用上は問題ないのですが、どうも気持ち悪かったものですから。
530 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 17:59:35 ] ファンクタに破壊的操作を加える述語ってありましたっけ?
531 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 18:26:46 ] 関数子(ファンクター)をいじるというと… 例えばf(a,b)、f(123)などのfを一気にffにするとか? 述語名には影響はないんだろうか。(いや、複合項のことだろうとは思うけど)
532 名前:デフォルトの名無しさん [2009/10/07(水) 05:36:52 ] 問題. 久方のなかなる川のうかひ舟いかにちぎりてやみを待つらむ 藤原定家 この短歌に現れる枕詞「久方の」は 「なかなる川」= 京の中なる川 = 桂川 の 桂から月が連想されて、その月の光に対して、 添えられていると考えられる。 この関係を示す述語「久方のについて思い巡らし」を定義せよ。
533 名前:デフォルトの名無しさん [2009/10/07(水) 07:03:07 ] プロログって 述語(主語や目的語や補語) って形式だよね? なんか自然言語の語順と一致しなくて気持ち悪いんだけど その一因は、当時の計算機の処理能力(速度とリソース)にあると思うんだ。 いまのコンピュータ性能なら、自然言語の語順で同様のことができると思うのだけど そういう言語でプロログに近い推論を行うものってある?
534 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 08:58:37 ] たぶんない。作ればあるだろうけど。 自然言語に近い語順、はいいけど、機械が扱うためにはきちんと形式化されてる ことが必要だからね。
535 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 09:50:36 ] >>534 X:>自然言語に近い語順、はいいけど、 O:>自然言語に近い語順、は「どーでも」いいけど、
536 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 10:15:11 ] >>533 自然言語の語順と一致しなくて気持ちいい
537 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 10:51:45 ] 気持ちがよければそれでいいのかと問いたい 問い詰めたい
538 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 10:56:43 ] 自然言語にすり寄っても、論理学との関係がややこしくなったら本末転倒じゃないかな
539 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:15:46 ] 英語的: 主語 <述語> 目的語 :- ... . 日本語的: 主語 目的語 <述語> :- ... . この場合は述語指定に< >を使ってしまうので大小比較の時の記号表現にちょっと困る。 日本語的: (主語,目的語)述語 :- ... . とすれば現在と差なく処理できるが、 英語的: には適用できない。
540 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:41:56 ] relationなんで主語があるとは限らない。目的語も。
541 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 12:53:11 ] 格概念への割り当てが面倒になって飽きること必至
542 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 16:03:17 ] >>533 計算機の処理能力というようなことではなく、考えに考え抜かれて、 現在の言語仕様が作られたように思うなぁ。
543 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 17:51:10 ] 言語仕様はね。 構文は 述語(引数0, 引数1, ...) でなくたとえば (引数0, 引数1, ...)述語 も ありだとはおもうけど、今の形になったのは計算機のリソースの問題とか じゃなくて、数学の記法における慣習とか、そこらへんでないかと。 自然言語ライクな文法って、例えば Mind みたいな文法のことを 言いたいのかな?
544 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 03:35:50 ] 述語が先にくる自然言語(タガログ語とか)を使えばよろしい。
545 名前:デフォルトの名無しさん [2009/10/09(金) 12:34:55 ] op で上手く定義すれば、ある程度は自然言語に近付けられそうな気がする。
546 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 12:44:04 ] >>545 pc12.2ch.net/test/read.cgi/tech/1179157784/30 とか。
547 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 20:00:13 ] >>543 フレーゲあたりじゃない?述語論理の形式が整ったのって。 数学の関数 f(x) にヒントを得たんじゃなかろうか。
548 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 19:06:17 ] K-Prologについて教えてください。SWIに比べて制約があるようなのですが、 下記のコードはSyntaxErrorになります。 my-reverse([], []). my-reverse([X | Xs], Ys) :- my-reverse(Xs, Zs), append(Zs, [X], Ys). SWI-Prologでは問題なく動くのですが。 K-Prologが本来の文法を維持しているのか?単なるバグなのか? 因みに下記だとK-Prologでも動きます。 my-reverse(R,L) :- my-reverse(R,L,[]). my-reverse(R,[],R). my-reverse(R,[A|L],LL):- my-reverse(R,L,[A|LL]).
549 名前:548 mailto:sage [2009/10/12(月) 20:04:58 ] すみません、わかりました。K-Prologの意味不明なエラーに 悩まされていたのですが原因は単純でした。 コードの最後の行に改行がないと正しく読み取られないようです。 お騒がせしました。