ソフトウェアを使用しようとしていますが、いくつか問題があります。Prologの文字列からリストへの変換
プロローグがプリインストールされている大学のコンピュータ(OSX)やWindowsコンピュータでは、同じソフトウェアが動作することに注意してください。それは私のLinux/Ubuntuマシンでは動作しませんが。
ソフトウェアは、このフォームを使用してbashスクリプトで起動:
:echo "reset_statistics(off), specific_load_predicate(filename), tokenize(\"$2\", List), tex(List, $3)." | ./prolog-executable
プロローグの実行ファイルがswipl -c
とqsave_program/1
を使用して作成された今、私は述語トークン化の形式は見つけました
tokenize([A|As], List) :- ...
入力としてリストを取得しますが、bashスクリプトは文字列を提供します。
文字列からリストへの変換を自動的に行うプロローグモジュールまたは拡張機能を使用することは可能ですか?同じコードが他のコンピュータで動作するためです。
SWI-Prologでは、Prologフラグ 'double_quotes'を' chars'(推奨)または 'codes'に設定して、二重引用符で囲まれたすべてを文字またはコードのリストに変換します。これは、最初に**あったはずであり、他のPrologシステムも何をするのかです。この点については、コマンドラインオプション '--traditional'を使用して標準に準拠した動作を得ることもできます。 – mat
@mat素晴らしい!これは私が探していた答えのようなものでした。私が - swraを起動すると動作しますが、使用されているすべてのbashスクリプトで動作しません。システム全体に設定する方法はありますか? – Xeli
Bashエイリアスを 'alias swipl = '/ usr/local/bin/swipl --traditional''などのように追加したり、'〜 - set_prolog_flag(double_quotes、chars) '。インストラクターが別の方法でSWI-Prologを呼び出すと、これはすべてとても楽しい状況につながります。 Prologの標準があるはずです。 – mat