• ベストアンサー

prolog プログラム

Xは日本人である:japanese(X)   Xは米国に住んだことがある:usa(X) Xは英語が話せる:english(X) 上の述語を使って、下のprologのプログラムを作成したいです。 分かる方いらっしゃいましたら宜しくお願いしたいです。 「太郎は日本人である」 「米国に住んだことのある日本人は英語が話せる」 「太郎は米国に住んだことがある」

質問者が選んだベストアンサー

  • ベストアンサー
  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

数学の質問じゃないよ。 プログラム板( http://oshiete.goo.ne.jp/category/221/ )には、 今時、prolog の板はないか。しょうがないか。 プログラムと呼ぶほどの内容ではないので、 問題は、どうやって prolog の文法に乗せるかだけ。 prolog の記法は、処理系によって結構変わるから… インタプリタなりコンパイラなりを特定しないと、 どう書けばよいのか決まらないかもしれない。 私の知ってる処理系では、   japanese(taro).   english(X) :- usa(X), japanese(X).   usa(taro). かな。でもって、   ?- elglish(taro). と問い合わせると、   yes と返事がくる。

Trafalgar_law
質問者

お礼

ありがとうございましたm(__)m♪

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • prologでの数式の簡単化

    prologで微分をするプログラムを作ったのですが計算した結果が、例えば、 0*x^2+a*(2*x^1*1)+(0*x+b*1)+0 のように無駄に長くなってしまいます。そこでこれを簡単化する述語simple(P)を作りたいのですがどのようにしたら良いでしょうか? ?- simple(0*x^2+a*(2*x^1*1)+(0*x+b*1)+0). 2*a*x+b yes できれば上のような動作がするぐらいのものが作りたいです。 少なくとも余計な0,1を除去するくらいはしたいのですが・・・ お願いします。

  • prologのプログラムについて

    ?- ss([3,4,1,2,5],[1,2],X) X=[3,4,5] ?- ss([car(X,Y),car(Z,W)],[car(a,b),car(c,d),train(a),car(e,g)],List) List=[train(a),car(e,f)] List=[car(c,d),train(a)] List=[car(a,b),train(a)] ?- ss(X,[1,2],[3,4]) X=[1,2,3,4] となるようなprologのプログラムをつくりたいです。 丸一日、試行錯誤したのですが、結果どおりに動いてくれません。 分かる方がいらっしゃいましたら、教えていただけませんでしょうか。

  • question about Prolog

     Prologについて質問があります。  私は今Prologで簡易和英・英和翻訳機をつくろうとしているのですが、途中でつまづいています。  以下のようなPrologリストを読み込んで、``in rooms''を日本語に直そうとして    :-prep_phrase([in,rooms], [], B, []). と入力すると、    B = [heya,no,naka,no] と正しい答が返ってきますが、逆に``heya no naka no''を英語に直そうと    :-prep_phrase(A, [], [heya,no,naka,no], []). と入力しても、無限ループに陥ってしまうようでエラーメッセージとして    ``stack overflow'' が返ってきます。  トレースしてみたところ、noun_phrase と prep_phrase が交互に次々と呼ばれていました。  どうしてこのようなことが起こるのでしょうか(英->和はできているのに)。また、これを回避する方法はあるのでしょうか。 %% プログラムリストここから %% 英語の「名詞+前置詞節」を日本語の「前置詞節+名詞」に %% 翻訳する %% ex. in rooms -> heya no naka no %% 名詞節 noun_phrase(A, C, X, Z):-noun(A, B, Y, Z), prep_phrase(B, C, X, Y). %% 前置詞節 prep_phrase(A, C, X, Z):-prep(A, B, Y, [no|Z]), noun_phrase(B, C, X, [no|Y]). prep_phrase(A, A, X, X). %% 前置詞 prep([in|A], A, [naka|X], X). %% 名詞 noun([rooms|A], A, [heya|X], X). %% プログラムリストここまで

  • 日本人以外の英語

    日本人です。英語はほとんど話せません。 日本人の英語は、その発音の仕方や話し方がずいぶん槍玉にあげられますよね。 最近では『ジャパニーズ・イングリッシュでいこう』なんて本も出ましたが、「ジャパニーズ・イングリッシュ」というと、依然としてよくないイメージがあると思います。 英米圏の英語とはかけ離れた英語は、日本以外にも、インドやオーストリアなどたくさんあるのに、日本人英語だけが槍玉にあげられるのは釈然としません。 なぜこういうことになっているのでしょうか?

  • OFの使い方

    Japanese speakers of Englishは 日本語を話す英語圏の人という意味ですか?それとも 英語を話す日本の人という意味ですか?

  • 教科の大文字 小文字表記について素朴な疑問

    英語学習者です。 英語=English 日本語=Japanese 数学=math のように教科によって単語の最初が大文字に なったり小文字になったりするのは何か 法則があったりするのでしょうか? ご存知の方いらっしゃいましたら、教えてください。

  • 辞書プログラム

    C言語で日本語英語対訳辞書を作成したいのですが、参考となるプログラムを知っている方教えてください。

  • 以下のプログラムを作るとすると・・・・・・?

    プログラム作成の勉強をしているのですが、よく分かりません。お分かりの方、ぜひ教えてください。 log(1+x)=Σ_[M,n=1]{(-1)^(n+1)/n}・x^n M=∞ 上の式から有限なMの値とxの値を入力し、Do loopで第M項までの総和によりlog(1+x)の近似値を求め、組み込み関数logYの値と総和による近似解を求めた値の順でディスプレイ上に書き出すプログラムを作成するにはどうしたらよいでしょうか? どうかよろしくお願いします。(使っているツールはxemacsです。)

  • Global English用の日本語マニュアル

    日本語ライティングについて書かれた書籍を探しています。 (日本語であり、英語ではありません。) 以下の様な内容の物となりますが、よろしくお願いいたします。 Global English(制限英語)というシンプルな英語がありますが、これは日本語から英語に翻訳する際、Global English(制限英語)という考え方を用いて、翻訳していると理解しています。 このGlobal English(制限英語)という考え方を日本語から適用し、日本語の時点からシンプルな文章を作成したいと考えています。 このため、Global English(制限英語)化を踏まえて、日本語文書自体をシンプルに作成する方策が書かれているライティングの書籍を見たいと考えています。

  • このプログラムはどのように作成するのでしょうか?

    プログラム作成について勉強しているのですが、分からないのでぜひ教えていただきたいです。 整数Mと初期値X(0)の値を入力し、 X(n+1)=16807X(n) をN=Mまで計算しファイルX.dataに書き出すプログラムを作成 (X(n)は倍数度実数) 分かる方、ぜひご教授ください。