![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
私は自然言語処理に興味があるものですから、そういったものに関連するような言語に興味をもち、lilfesという言語に至りました。
http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/manu …
このユーザーマニュアルを読んでいるのですが、よく分からない事があり、もしかして度々質問する事になる気がします・・・・orz
本題ですが、型定義についての質問です。
http://www-tsujii.is.s.u-tokyo.ac.jp/lilfes/manu …
このサイトを参考に次のように定義してみました。
string <- [bot].
person <- [bot] + [NAME\string].
そしてそれをAVM木で表示したくて次のようにタイプしました。
:- printAVM(person & NAME\string).
その結果
>person
orz
なぜ?私が期待していた回答は
|~person ~|
| NAME:string |
こんな感じになると思ったのですが・・・。識者の方、私のような人間にも分かるよう教えていただけますか?
No.2ベストアンサー
- 回答日時:
> person <- [bot] + [NAME\string].
でNAMEに入る型がstringであると定義しているにもかかわらず
> string <- [bot].
でstringの型をbotと定義しているので期待した表示が出なくなります。
なので
> :- printAVM(person & NAME\string).
の"string"の型がstringであると定義すればよいので
> person <- [bot] + [NAME\string].
> str <- [string].
> :- printAVM(person & NAME\str).
|~person ~|
|_NAME:str_|
とすればうまく表示されます。
回答ありがとうございます。返事が遅れまして大変申し訳ございません。
上記の通りしたら、確かに表示されました。ありがとうございます。
stringの型はlilfesに元々既にある型であるということなのですね・・・。
すいません、また分からないことがあれば質問すると思います。
回答してくださった方々、ありがとうございました。
No.1
- 回答日時:
まずそもそも printAVM はその様に型を受け取る述語ではありません。
例えば
:- printAVM(person & NAME\"hoge").
の様に使う訳、です。
また string <- [bot] というのがまずい様です。
その一行を消して見てください。
以下のようにおそらく(?)予想通りの答えが出る、と思います。
$ lilfes
> person <- [bot] + [NAME\string].
> :- printAVM(person & NAME\"hoge").
|~person ~|
|_NAME:"hoge"_|
>
string という型で使いたいのにもかかわらず bot にしてしまっては、printAVMはそもそも上記のように使うものなので、string を入れようとすると怒られてしまう羽目になる訳、です。
この回答への補足
すいません。お礼の表示で間違いが・・・。
|~person ~|
|_EMPLOYER:john_|
|_EMPLOYEE:john_|
ではなく
|~person ~|
|_EMPLOYER:john_|
|_EMPLOYEE:ken_|
でした。
回答ありがとうございます。返事が遅れまして大変申し訳ございません。
その後、自分でも試行錯誤してみましたところ、
$ lilfes
> john <- [bot].
> ken <- [bot].
> person <- [bot] + [EMPLOYER\, EMPLOYEE\ken].
> :- printAVM(person & EMPLOYER\john、EMPLOYEE\ken).
|~person ~|
|_EMPLOYER:john_|
|_EMPLOYEE:john_|
>
と表示されました。
回答通りしたところ同じように表示されました。
しかし、このprintAVMは値を与えなければ、もしや表示されないということなのでしょうか・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
std::stringの継承
-
strtokでの空文字への置き換え
-
マルチスレッドで同時にFTPアッ...
-
STL mapからの要素の削除
-
C# List型のIndesOf メゾットに...
-
System.out.printlnの出力先
-
[JAVA]try 内の変数を外で!?
-
java 一意の値を取り出す方法
-
java.util.Comparatorのcompare...
-
Javaコンパイルエラー
-
JSPやサーブレットでSystem.out...
-
java.util.Dateについて
-
並行サーバの導入
-
正規表現について
-
getactualmaximum
-
IF関数でEmpty値を設定する方法。
-
,で句切って部分一致をファイ...
-
flush()とclose()について
-
Java JPanelを使ったコードにつ...
-
Path型をString型へ変換する(Java)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Java8以降】csvファイルの複...
-
特定の文字列が一致する行から...
-
マルチスレッドで同時にFTPアッ...
-
strcmp関数などでの複数の文字...
-
C# ListBoxのアイテムをユーザ...
-
「指定されたキャストは有効で...
-
string→CStringの型変換について
-
C#でIPアドレスの取得について
-
PHPのSHA256変換について
-
jap実行時のTomcatのエラーに困...
-
GridViewで複数のDropDownList...
-
Delphiで改行文字の置換がうま...
-
C#での関数テーブルの作り方
-
GDI+ DrawString() で指定範囲...
-
C# visual studio 2017 TCP/IP...
-
c#で(",")区切りのcsvファイル...
-
C#のStreamReaderでのforeach
-
C# JSONについて
-
strncpy後のatoiがおかしい
-
C#での関数テーブルの作り方
おすすめ情報