2014年02月~ 2016年06月まで使用していた掲示板の書き込みです。

 

無題
put と reconsult について
ysh  2016-06-15 16:53:58  

rput.pl

:-[-‘rput2.pl’].
rput(0,K):-!.
rput(N,K):-put(K),L is N-1,rput(L,K).

rput2.pl

rput(0,K):-!.
rput(N,K):-put(K),L is N-1,rput(L,K).

rput.plをコンサルトし、
AZ-Prolog version 9.24 (Win64/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2016/02/08
| ?-listing.
rput(0,_) :-
!.
rput(N,K) :-
put(K),
L is N-1,
rput(L,K).
rput(0,_) :-
!.
rput(N,K) :-
put(K),
L is N-1,
rput(L,K).
yes
| ?-

となりreconsultできないようです。reconsult命令でも同じでした。
また、
?-rput(10,6).
で実行しますと、最初のputの出力が異なって後の9個の
出力は正しく出ました、

投稿No.74
自HPのコード:実行。
Uema  2016-03-14 20:34:56 

自リンク:ttp://uema358.sakura.ne.jp/HP-prolog/nqueens_fast.pl
時間計測を除き実行できました。この部分は書き換えが必要です。
% ls nqueens_fast.pl
nqueens_fast.pl
% prolog -s nqueens_fast.pl
AZ-Prolog Version 9.24 (Linux/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2016/02/09
| ?-main.
N = |: 8.
[2,7,5,8,1,4,6,3] 1
[2,5,7,4,1,8,6,3] 2
[2,7,3,6,8,5,1,4] 3
[1,5,8,6,3,7,2,4] 4
[2,5,7,1,3,8,6,4] 5
[3,6,2,5,8,1,7,4] 6
[1,6,8,3,7,4,2,5] 7
[2,6,1,7,4,8,3,5] 8
[2,4,6,8,3,1,7,5] 9
[2,6,8,3,1,4,7,5] 10
[3,5,8,4,1,7,2,6] 11
[3,5,2,8,1,7,4,6] 12
CPU time = _3 msec
no
| ?-

投稿No.72
.
2016-01-18 01:16:55

.

投稿No.69
az-prolog のeclipse プラグインについて
名無しさん  2016-01-07 12:52:51  

ttp://eclipse.az-prolog.com/
こちらのサイトを見ながらeclipse のプラグインをインストールしたのですが、ソースファイルを保存すると、

保管が失敗しました
java.lang.NullPointerException

とエラーが出てしまい、AZ-Prolog コンソールも動かず反応がありません。
何か依存関係で不足しているものなどがあるのでしょうか?

OSはUbuntu 14.04 64bit です。

$ java -version
java version “1.8.0_66”
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

eclipse はluna と mars の両方で試しましたが同じでした。
pleiades_1.6.0 を使い日本語化してあります。

投稿No.63
Re: az-prolog のeclipse プラグインについて
sofnec  2016-01-08 11:07:33  

まず、ご確認頂きたいのですが、AZ-Prologコンソールに、
以下のような表示がされていますでしょうか。

AZ-Prolog version 8.22 (Linux/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2015/05/19
|

もし表示されていないようでしたら、AZ-Prolog本体のインストールが
されていないか、正しくインストールされていないようです。
インストールの方法を再度確認下さい。

 www.az-prolog.com/manual/manuals/manual_setup.html#setup_2

次に考えられるのが、パースペクティブの設定です。
画面右上のパースペクティブが、「AZDT」または「AZDTGT」になっていますでしょうか。
パースペクティブの状況をご確認下さい。

それでも解決しない場合、お手数ですが再度投稿をお願いします。

投稿No.64
Re: Re: az-prolog のeclipse プラグインについて
名無しさん  2016-01-07 17:28:19  

返信有り難うございます。

eclipse 上のAZ-Prolog コンソールには何も表示されていません。
ターミナルから$ prolog コマンドで起動した場合は表示されています。

インストールはフル機能の方で行いました。
デフォルトの場所にインストールしたので、環境変数の設定等はしていないのですがする必要があるのでしょうか?

パースペクティブの設定はAZDTになっています。
よろしくお願いします。

投稿No.65
Re: az-prolog のeclipse プラグインについて
sofnec  2016-01-08 16:14:45  

報告ありがとうございます。

コンソールビューにProlog起動のメッセージが表示されていないことが原因と思われます。
お手数ですが、次に環境変数関係の確認をお願いします。

・AZPrologという環境変数に何が設定されていますか。
$ env | grep AZProlog

・もし設定されているならば、設定内容に間違いはございませんか。
$ $AZProlog/bin/prolog
で、Prologが起動できるか確認下さい。

・eclipseの設定状況、windows->preference(ウィンドウ->設定)のAZDTをクリックしてもらい、ホームディレクトリの内容を確認下さい。

プログラムの仕様としては、preferencesのホームディレクトリにprolog_cを付けて起動しています。もしホームディレクトリの指定がなければ、環境変数PATHに従って起動されます。

ご確認下さい。

投稿No.66
Re: az-prolog のeclipse プラグインについて
名無しさん  2016-01-09 00:31:15  

ありがとうございます。

AZProlog という環境変数には何も設定されていません。
$ env | grep AZProlog
でも何も表示されません。

eclipse の設定で、windows->preference(ウィンドウ->設定)のAZDT を選択しようとするとエラーになります。
AZDTの項目には右三角がなくクリックしてもエラーになり表示されません。
クリックすると、

## Problem Occurred
An error has occurred. See error log for more details.
java.lang.NullPointerException

というエラーが表示されます
ですので最後の設定も確認できない状態です。

投稿No.67
Re: az-prolog のeclipse プラグインについて
sofnec  2016-01-13 18:20:10  

連絡が遅くなりまして、申し訳ありません。

頂いた状況だけから、原因を特定することが出来ず、連絡が遅くなりました。

もし差し支えなければ、メールでご連絡頂けないでしょうか。
(宛先:azdt@sofnec.co.jp)

詳しく情報を聞かせて頂いたり、または、今月リリース予定である
最新版のプラグインの提供をさせて頂きたいと思っています。

もし難しいようでしたら、誠に申し訳ありませんが、
今月中にリリースする最新版を待って頂き、再度インスールし直して
頂けますでしょうか。

宜しくお願いします。

投稿No.68
Re: az-prolog のeclipse プラグインについて
sofnec  2016-01-15 08:56:17  

こちらでも現象が再現できました。

大変申し訳ありませんが、現在のバージョンにバグがありまして、
以下のような手順で実行して頂けますでしょうか。

$ which prolog
/usr/local/bin/prolog
$ export AZProlog=/usr/local ★AZ-Prologのインストールフォルダを指定
$ ./eclipse

もちろん、この環境変数設定は、~/.bashrc等のファイルで設定してもらって、
eclipseを起動してもらう方法でも構いません。

ワークアラウンドでの対応となりますが、宜しくお願いします。

投稿No.70
Re: az-prolog のeclipse プラグインについて
名無しさん  2016-01-16 02:10:24  

ありがとうございました。

投稿No.71
0x12af
Uema  2015-10-14 23:31:27  

0x12af
次期バージョンでは、この表記法、使えますね?確認
SWI-Prolog Ciao-Prolog GnuProlog などから
AZPrologへの移行する場合、この表記ができなことがネックになります。。

投稿No.60
Re: 0x12af
稲葉輝  2015-10-15 15:07:21  

ご要望、賜りました。
現在、次バージョンリリースの準備にはいっていますので、これに追加します。

投稿No.61
Re: 0x12af
上間  2015-10-16 23:58:01  

稲葉様 
よろしくお願いします。

投稿No.62
全部実行させるには
oldlevin  2015-08-28 12:06:55  

 あまりにも初歩的な質問ですみません。以下のプログラムで,
cdr(X,[a,b,c,d]), 以降が実行されないのはなぜでしょう。実行されるようにするにはどうしたらいいでしょうか。      

car(X,[X|_]):-write( ‘car(X,[X|_]). —> ‘),write(X),nl.
cdr(X,[_|X]):-write( ‘cdr(X,[_|X]). —> ‘),write(X),nl.

do :-
write(‘——‘),nl,
car(X,[a,b,c,d]),       % ここが実行されて、
cdr(X,[a,b,c,d]),      % これ以降が実行されないのはなぜ。
write(‘======’),nl.

/*
?- do.
*/

投稿No.58
Re: 全部実行させるには(自己レス)
oldlevin  2015-08-29 08:56:59  

わかりました。
同一節内での変数は同内容になることを見逃していました。
後の変数XをYに変更すると期待通りの結果になりました。
 別々の練習問題を(管理の都合上)ひとつのプログラムで実行させようとしていましたので。

投稿No.59
indomain alldifferentを使うには
oldlevin  2015-08-26 14:15:21  

prolog初心者です。
gnu-prologの述語
fd-domain
fd-all-different
に該当するAZ-Prologの述語は
indomain
alldifferent
 であろうと思い「おためしAZ-Prolog~」で使おうとしましたがうまくいきません。どうしたらいいでしょうか。WEB版では使えないのでしょうか。

投稿No.55
Re: indomain alldifferentを使うには
名無しさん  2015-08-26 23:14:06  

indomain alldifferent をつかうには、制約拡張機能パッケージを取り込む必要
があります。次のようにプログラム欄に書き込んでおいてください。

:- dlib_require(clp).

なお、Web版おためしAZ-Prologには制約を使った数独のプログラムがありますので、参考にしてください。
また、制約についてはマニュアルもご参照ください。
https://www.az-prolog.com/manual/manuals/manual_clp.html#clp_2

投稿No.56
Re: indomain alldifferentを使うには
oldlevin  2015-08-27 07:23:09  

ありがとうございました。できました。

投稿No.57
twitterから質問を拾ってきました。
上間  2015-07-18 20:31:02  

投稿者の名前はペーストしません。
_
_
AZ-Prologで数値20を’0020’にどうやるのか

投稿No.50
Re: twitterから質問を拾ってきました。
稲葉  2015-07-18 23:24:10  

数値は10進で一桁~4桁あるのでしょうから、2桁のときのみの簡単な例は

?- atom_appends([’00’,20],X).
X= ‘0020’
述語にする場合や桁数によるプレアド’0’の個数などはご工夫ください。

投稿No.51
長い? 1行のテキストファイルから32文字ごと
上間  2015-07-14 22:48:46  

aaa.txt
内容
0000C00D00000000000000000000000000000000000000000000000000000000

上のファイルから32文字単位で読み込むコードを教えていただけないでしょうか?

インテルヘキサフォーマット変換するコードを考え中です。

投稿No.46
Re: 長い? 1行のテキストファイルから32文字ごと
名無しさん  2015-07-15 12:36:22  

q0000C00D00000000000000000000000000000000000000000000000000000000.

行頭に適当に「q」
行末に「.」ドット
最後に空行を設ける。

の3つを考慮します。

またsub_atom/5
で32文字抜き出せそうですが
“文字列”をatomに変換しないといけないのか?エラー出まくりで解決できてません。

投稿No.47
Re: 長い? 1行のテキストファイルから32文字ごと
稲葉輝  2015-07-15 18:42:40  

こんなので如何?

read32(L,Status) :- get(X),read32(31,X,L,Status).

read32(_,26,[],end) :- !.  % <== Winでは26,Linuxでは4 (end_of_file)
read32(0,X,[X],cont) :- !.
read32(N,X,[X|L],Status) :- NN is N-1, get(Y), read32(NN,Y,L,Status).

/*

| ?-see(‘aaa.txt’),read32(L,S1),read32(R,S2),read32(A,S3),seen.
L = [48,48,48,48,67,48,48,68,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
48,48,48,48,48,48,48,48,48],
S1 = cont,
R = [48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
48,48,48,48,48,48,48,48,48],
S2 = cont,
A = [],
S3 = end

*/

投稿No.48
Re: 長い? 1行のテキストファイルから32文字ごと
上間  2015-07-15 19:53:17  

稲葉さま
ありがとうございます。

see(‘aaa.txt’),read32(L,S1),read32(R,S2),read32(A,S3),seen.
は、エラーになります。

see(‘aaa.txt’),read32(L,S1),read32(R,S2),seen.
は、成功します。

少し、考えてみます

投稿No.49
ecripse
名無しさん  2015-07-07 11:05:46  

m88def.inc ファイル:689行:11,184 バイト(ディスク上の 12 KB)
内容
………………
………………..
………………….
equ(flashend,0’0fff).
………………….
……………….
…….
———————————————————————-ここまで

main.pl
内容
asm:-
get_parameter( [P] ),
see(P),
repeat,
read(X),
pre(X),
X==end_of_file,
!,
seen.

pre( X ):- X=[include,I], reconsult(I),write(***),!.
pre( X ):-!.

———————————————————————-ここまで
s7.asm
内容
[include, ‘m88def.inc’].
[nop].
[adiw, r30,63].
[and, r31, r0].
[nop].

———————————————————————-ここまで
てすと実行

love:uema% prolog -s main.pl -p s7.asm
AZ-Prolog Version 8.22 (Linux/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2015/05/19
| ?-asm.
***
yes
| ?-equ(flashend,K).
K = 0;
K = 1;
K = 4095;
no
| ?-

ーーーーーーーーー
なぜ、定義していない
K = 0, K = 1,が表示されるのでしょうか?
ここで
K=4095は定義しています。

投稿No.36
Re:
うえま  2015-07-07 11:11:21  

バグでは?

投稿No.37
Re: ecripse
上間  2015-07-07 12:05:20  

単純に実行しても
同じ動作です。
AZ-Prolog Version 8.22 (Linux/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2015/05/19
| ?-[‘m88def.inc’].
yes
| ?-equ(flashend,M).
M = 0;
M = 1;
M = 4095;
no
| ?-

投稿No.38
Re: ecripse
稲葉  2015-07-07 18:24:29  

プログラム全体を拝見させていただかないとご指摘の挙動がなぜなのかは
わかりかねますので、差支えなければ
メールにに添付してお送りください。

%%%%%%%%%%%%%%%%%
上間様、稲葉です。
さっそくのご送付ありがとうございました。

m88def.inc と tn1634def.inc の述語equ/2には中間に第一引数が変数である節が
二つ含まれており(”_”ではじまる文字並びは変数)このため次のような振舞いになります。
tn2313def.inc にはそれが含まれないため、一意解となります。

?- equ(flashend,X).
X = 0; %% equ(_ubrr0,0 ) とマッチ 変数 _ubrr0 と flashend がユニファイ
X = 1; %% equ(_ubrr1,1 ) とマッチ
X = 8191 %% equ(flashend,0’1fff ) とマッチ
no

%%%%%%%%%%%%%%%
m88def.inc (s1.asmからreconsultされるファイル)
:
584 equ(_ubrr0,0 ).
585 equ(_ubrr1,1 ).
:
671 equ(flashend,0’1fff ).
:
%%%%%%%%%%%%%%%
tn1634def.inc (s3.asmからreconsultされるファイル)
:
584 equ(_ubrr0,0 ).
585 equ(_ubrr1,1 ).
:
671 equ(flashend,0’1fff ).
:
%%%%%%%%%%%%%%%
tn2313def.inc (s2.asmからreconsultされるファイル)
:
411 equ(flashend,0’03ff ).
:

投稿No.43
Re:
上間  2015-07-07 18:59:09  

稲葉様
ありがとうございます。

上間のミスでした。
WindowsのAVR開発環境からINCファイルを取り出し、
Mac,Debianへ持ち出し
sed -i -e コマンドで一括にProlog複合項形式に変換しました。
ファイルが長いので
アンダースコアで始まる変数があるのに気付きませんでした。

お手数おかけしました。

すいません。
                  うえま

稲葉様
テストコードお送りいたしました。
よろしくお願いします。
         上間@from_okinawa_urasoe_shi

投稿No.44
Re:
上間  2015-07-07 19:16:58  

INCファイルのあるディレクトリへいき
変数形式単語を検索すると
多くのファイルに見つかりました。

love:uema% grep -i “\b_.*” * [/tmp/TEST/avr-def]
m48Adef.inc:equ(_ubrr0,0 ).
m48Adef.inc:equ(_ubrr1,1 ).
<略>
m2560def.inc:equ(_ubrr1,1 ).
m2561def.inc:equ(_ubrr0,0 ).
m2561def.inc:equ(_ubrr1,1 ).
tn1634def.inc:equ(_ubrr0,0 ).
tn1634def.inc:equ(_ubrr1,1 ).
love:uema% [/tmp/TEST/avr-def]

投稿No.45
reconsult
上間  2015-07-07 13:25:22  

マイコン規模の小さいインクルートファイルへ変更すると
つまり
s1.asm
の1行目を
[include, ‘tn2313def.inc’].

へ書き換えると

次のように ちゃんと動作します。

Copyright (C) SOFNEC CO., LTD. 1987-2015/05/19
| ?-asm.
***
yes
| ?-equ( flashend, K).
K = 1023;
no
| ?-
1023は、求めていたものです。

投稿No.39
Re: reconsult
上間  2015-07-07 13:28:42  

起動時
メモリサイズを増やす設定あるようなのですが、
どのように
設定しますか?

おおよその数値もわかりません。

これだけあれば十分
というような数値とオプションおしえていただけないでしょうか?

マックのメモリーは4Gです。
Debianのメモリは8Gです。

投稿No.40
Re: reconsult
稲葉  2015-07-07 15:49:06  

インタプリタのメモリサイズですが、プログラムを読み込んで走らせたあと
?-statistics.
で現在の確保されているサイズ、消費したサイズが表示されます。
この場合、セル数です。起動時のパラメータはKセル数で指定します。
たいていはデフォルトで十分ですし、ヒープやスタックが不足した場合はエラー
で実行を中断しますのでその時点でサイズを調べ適当な大きさで立ち上げなおせば
よろしいでしょう。

投稿No.42
起動オプション
上間  2015-07-07 15:30:13  

prolog -h 1024 -l 1024 -a 1024 -g 1024 -s assembler.pl -p s1.asm

のように 起動しても

equ(flashend,P).


P=0:
P=1;
0=4065;

の3つにヒットしてしまいます。

4065のみヒットするのが正しいです。

ちょっと大きいデータやプログラムを入力すると
AZ-Prologはエラーではないが、
挙動がおかしくなるのかな?

なお、
この書き込みはコマーシャルにはなりませんので

貴社のほうで削除して下さい。

一連の書き込みに答えてください。

上間

返信以外は削除できないですね!!

投稿No.41
ecripse
名無しさん  2015-07-07 10:20:08  

Eclipseエラーヶ所わかりました。

ecripse

鬼車

を削除して下さい

投稿No.34
Re: ecripse
名無しさん  2015-07-07 10:21:14  

上間です。

投稿No.35
Eclipseエラーヶ所わかりました。
上間  2015-07-05 23:09:04  

moratrial (スペルミス?)
を入力後

フロッピーディスクアイコンを押した時エラーになります。
それでも保存できている感があります。

MacとDebian
同じところで、エラーになります。

投稿No.33
ecripse
Uema  2015-07-05 21:20:56  

ecripse
Macにインストールしました。
ご紹介の通りやりましたが
リコンサルトでエラーになります。

AZPrologのコンソール
プロンプトひょうじされませんが、
このような仕様でしょうか?

投稿No.31
鬼車
上間  2015-07-01 09:53:32  

削除します。
空行は特にマッチさせなくても
無視されるので、
鬼車使わなくても
よくなりました。

鬼車の使い方
わかっていた方が
いいと思いますが、、

投稿No.30
特殊な16進数表記
上間  2015-06-30 19:24:09  

5時間ほど格闘していました。
AVRマイコン定義ファイル.incファイルをsedコマンドで
Prolog,複合項表現へ変換し $ prolog -s hoge や
[hoge].
で読み込ませようとしていましたが、syntax error
16進数の表記が特殊でした。

0x12
でOKだと思っていましが、

0’12 でないとダメみたいです。
どちらもOKにして欲しいのですが、
普通のレベルの人は、すぐに気づくのでしょうね!
頭が悪いのを実感しました。

投稿No.28
Re: 特殊な16進数表記
稲葉輝  2015-07-01 00:11:32  

>16進数の表記が特殊でした。0’12 でないとダメみたいです。
この表記法はPrologファイルを xxx.pl とするのと同様、エジンバラPrologからの伝統的なものです。

>0x12でOKだと思っていましが、どちらもOKにして欲しいのですが、
他社製処理系でこの表記を取り入れているところもあるようですので検討します。

投稿No.29
Re: end_of_file定義されていますか?
名無しさん  2015-06-30 13:57:23  

述語リファレンス
ttp://www.az-prolog.com/manual/reference/jutugo.html
の read/1 のところに記載されています。

投稿No.26
Re: Re: end_of_file定義されていますか?
上間  2015-06-30 14:03:15  

すいません。

上間の勘違いでした。

test

000000.
111111.
222222.

と言うファイルを作り
see(test),repeat,read(X),write(X),nl,X==end_of_file,seen.

を実行出来ました。

お騒がせいたしました。
すいません。

投稿No.27
end_of_file定義されていますか?
上間  2015-06-30 13:36:20  

EOFはend_of_file(と言うあとむ)ですか?
マニュアルのどこに記述されていますか?

投稿No.25
Windows7 Eclipseインストールをする際のzipファイルについて
若林一樹  2015-04-20 10:51:12  

AZ-Prolog Eclipseインストールマニュアルに沿ってEclipseをインストールしたところ正常に動作しませんでした。
(ファイルは呼び出されるがコンサルトしない。)
ttp://eclipse.az-prolog.com/eclipse_install.html

原因は
パスにスペースが含まれている
パスの文字数制限を超えている
以上の2点が考えられます。

PleiadesサイトURL(リンク:zip 解凍時の注意)
ttp://mergedoc.sourceforge.jp/

パスのスペースをなくし、デスクトップ直下(/home/<name>)で起動したところ正常に動作しました。

ご報告までに掲載させていただきます。

投稿No.17
Re: Windows7 Eclipseインストールをする際のzipファイルについて
田嶋 礼  2015-04-23 15:30:04  

若林様

この度はご指摘頂きありがとうございます。

ZIPファイル解凍時の注意事項を明記いたしましたので、ご確認頂ければと思います。

ttp://eclipse.az-prolog.com/eclipse_install.html

よろしくお願いいたします。

投稿No.18
Re: Windows7 Eclipseインストールをする際のzipファイルについて
上間  2015-06-30 13:41:00  

DEBIAN::
Eclispインストール出来ました。
Debian:プラグインのインストールに失敗しました。
JavaもOracleへ変えましたが!

AZ-Prolog
手順を一つづつ行い、インストール成功しました。ubuntu12.**64bit用
一気に行うと、エラーになる場合がありました。

投稿No.24
Unixのcatコマンド
上間  2015-06-30 09:55:20  

Unixのcatコマンドのような
ファイル表示コマンド
のAzPrologのコードを教えていただけないでしょうか?

OR

read/1 で読み込んだ場合、ファイル終端?は何でしょうか?

よろしくお願いします。
  上間

//////////////////////////////////////////////////////////////////
自分用のAVRマイコンアセンブラを作ろうと目論んでいます。
最初のファイルの読み込みで躓いています。

投稿No.19
Re: Unixのcatコマンド
名無しさん  2015-06-30 10:07:13  

1) 
Q. Unixのcatコマンドのようなファイル表示コマンド
A. copy0/1 がそれに相当するでしょう。

| ?-see(‘turukame.pl’),copy0,seen.
:- dlib_require(clp).

turukame(Turu,Kame,Foot,Head):-
Turu in 0..Head,
Kame in 0..Head,
Foot #= Turu*2+Kame*4,
Head #= Turu+Kame.
yes
| ?-see(‘turukame.pl’),tell(‘t2.pl’),copy0,seen,told.
yes
| ?-system(‘type t2.pl’).
:- dlib_require(clp).

turukame(Turu,Kame,Foot,Head):-
Turu in 0..Head,
Kame in 0..Head,
Foot #= Turu*2+Kame*4,
Head #= Turu+Kame.
yes

2)
Q. read/1 で読み込んだ場合、ファイル終端?
A. atomでend_of_file が単一化されます。

| ?-see(‘t2.pl’),repeat,read(X),write(X),nl,X==end_of_file.
:-dlib_require(clp)
turukame(Turu_83,Kame_85,Foot_87,Head_89):-Turu_83 in 0..Head_89,Kame_85 in 0..Head_89,Foot_87#=Turu_83*2
+Kame_85*4,Head_89#=Turu_83+Kame_85
end_of_file
X = end_of_file

yes

投稿No.20
Re: Unixのcatコマンド
上間  2015-06-30 10:31:20  

名無しさん
ありがとうございます。

3つのサンプルコードありがとうございます。

最後のサンプルコードうまく実行できません。

次のメッセージが返ります。

よろしくお願いします。
                  上間

この3番目のコードが目的を実現するのに必要なコードだと思います。

ーーーーーーーーーーーーーーーーーーーーーー
| ?-see(‘assemble.pl’),repeat,read(X),write(X),nl,X==end_of_file.
Syntax error —- Backtrace
(see(assemble.pl),(repeat,(read(X_26),(write(X_26),(nl,==(X_26,end_of_file))))))
?-
| ?-

ーーーーーーーーーーーーーーーーーーーーーー

投稿No.21
Re: Unixのcatコマンド
稲葉輝  2015-06-30 10:33:52  

追伸:
readは項の読み込み(”.”+空白文字までの項)を対象としていますので、Prologのシンタックス以外のファイルでしたら、バイト単位に文字コードを取得する get0またはget1を使うことになると思います。
この場合、ファイル終端はWindowsでは 26,Linuxでは4となります。

| ?-see(‘t2.pl’),repeat,get1(X),write(X),tab(1),X==26.
58 45 32 100 108 105 98 95 114 101 …. 97 109 101 46 13 10 26 X = 26
yes

投稿No.22
Re: Unixのcatコマンド
上間  2015-06-30 10:55:12  

稲葉さん

(.で終わる:項)の読み込みのコード
の方が、AVRアセンブラもどき(予定)に
使えそうです。

よろしくお願いします。

投稿No.23
Windows10で文字化け
池田俊憲  2014-10-05 16:49:05  

残念ですが,armをやめて、2015年末に販売される予定Windows10のDevelopper版(NEC-DeskTop)で自作soft(AZ-Prolog 32bit版)を起動すると、日本語がすべて文字化けします。 来年には、windows10の7インチTabletで動かしたいので、今後にご期待いたします。

投稿No.16
Nexus7へのインストール
池田俊憲  2014-10-03 11:44:52  

Nexus7とUSB接続したPCのubuntu14.04のphable@localhost’s passward: でPWを入力すると、
welcome to Ubuntu 14.04 LTS (GNU/Linux 3.4.0-flo armv7l)やLast Login: などとメッセージが表示された。
そこで、ご指示いただいた3行について、環境変数を、以下のとおりterminalに設定入力した。
phable@ubuntu-phable:$ export AZProlog=/home/phablet/az
他の2行は、お示しと同じ。そして、
phable@ubuntu-phable:$ prolog
と入力すると、
-bash: /home/phablet/az/bin/prolog: cannot execute binary file: 実行形式エラー
と表示されてしまいます。
また、~/.bashrcに同じ3行をそのまま記述しても、同じようなエラーとなります。

投稿No.14
Re: Nexus7へのインストール
稲葉輝  2014-10-03 13:49:39  

池田さま、ご確認ありがとうございました。

たいへん申し訳ありません、わたしの認識不足でした。
Nexus7のCPUはArmだったのですね。
  Ubuntu 14.04 LTS (GNU/Linux 3.4.0-flo armv7l)
AZ-Prolog はx86_x64アーキテクチャのCPU(intelやAMDなど)のバイナリ配布のみでありArmでは動作しません。
数年前にAZ-PrologのArm/Android版を試作し、スマホアプリを作ったことはありますので、需要が多くなるようであればArm版も検討したいと思いますが、現在のところは未サポートとさせてください。
よろしくお願いします。

投稿No.15
Ubuntu Touch への install
池田俊憲  2014-10-02 11:13:52  

自動起動の件
ご教示ありがとうございました。本日うまくでき、すごく助かりました。
おって、実行が大変おそくなりましたのは、実はNexus7’(2013)で、実行できるようにしたかったので、OSをUbuntu Touch(RMT版)に入れ替え、そして、日本語表示までできるようにはしました。しかし、Japanese Keyboardの日本語入力は、ひらがなができると聴きましたが、私には不具合で、なおそのアルファベットしかできません。
やむをえず、そのままにして、AZ-Prolog754を/home/phablet/azにインストール(/usr/localと/home/azではできない)できましたが、terminalでcd移動しても、prolog命令では、起動しない状態です。 
Ubuntu Touchは、Ubuntu14.04を基盤としていると聴きましたが、サポートされていなのでしょうか?

投稿No.12
Re: Ubuntu Touch への install
稲葉輝  2014-10-02 13:55:32  

池田さま、お問い合わせありがとうございます。

当方では、実機の用意がなく、お使いのNexus7’(2013)Ubuntu Touch(RMT版)での動作確認をとっておりませんが、Ubuntu TouchがUbuntu14.04を基盤としているならば動作するように思われます。
ただし、OS側で用意されているライブラリ類が異なるのであれば動作しないでしょう。
この際はProlog起動時になんらかのエラーメッセージが表示されるはずです。

お問い合わせの文面では、環境変数の設定がされていないように思われます。
AZ-Prologのマニュアル 2-2-2.環境設定 <任意の場所にインストールした場合> を再度お読みいただき、環境変数が正しく設定されているかをご確認ください。
なお、Terminalを開くたびに環境変数の設定が必要なので .bashrc などに記述しておくことをおすすめします。

ttp://www.az-prolog.com/manual/manuals/manual_setup.html#setup_2

動作するようでしたらお知らせください。よろしくお願いします。

投稿No.13
自動起動について
池田俊憲  2014-07-23 08:53:38  

作成したプログラムのダブルクリックでの自動起動の方法を、
Windows8.1とUbuntu14.04のそれぞれについて、教えてください。
前者OSでは、ショートカットに起動条件(-s、-r)付きが、
Windows7のように、できません。
後者OSでは、シェル構成でもできません。
SWI-Prolog上の別の作成プロブラムでは、両方のOSで、可能です。

投稿No.10
Re: 自動起動について
稲葉輝  2014-08-05 14:55:10  

池田さま、お問い合わせありがとうございます。

1)Windows8.1 AZ-Prolog7.54にて確認しましたが、Win7同様 -r-sオプション
  とも可能でした。今一度、設定をお確かめください。

1-1)Prolog.exe のショートカットをディスクトップに作成する。
1-2)ショートカットのプロパティを開き、作業フォルダ欄に
     読み込むプログラムのおかれているフォルダを書き込む
     例)c:\work
1-3)リンク先に読み込むプログラムの-s -r 指定を追記する
      例)”C:\Program Files\AZ-Prolog.754\bin\prolog.exe” -r a.bin -s a.pl
1-4)[適用]してプロパティを閉じ、ショートカットを開く

2)UbuntuのファイルマネージャからPrologをひらくには次の手順をおとりください

2-1)ファイルマネージャのメニューバー「編集」→「設定」→「動作」をひらく
2-2)実行可能なテキストファイルを「クリックしたら実行する」に変更しておく。
2-3)Prolog起動用のシェルを作成し、ターミナルを開いてPrologを起動するように記述
<例> gnome-terminal -e “prolog -s a.pl -h 100”
2-4)シェルに実行権限をあたえる
2-5)ファイルマネージャをひらき、該当シェルを開く
 2-6)シェルをディスクトップにコピーしても大丈夫ですが、
      起動時に読み込むプログラムをパス指定で記述するか、
      シェルの最初でディレクトリ移動しておいてください。

   <例> my_kick.sh
     cd ~/work
     gnome-terminal -e “prolog -s a.pl -h 100”

お試しください。

投稿No.11
VS2013 x86 Cross Tools コマンド プロンプトを開こうとすると、エラーが出ます。
t.yama  2014-06-09 18:23:55  

Microsoft Visual Studio Express 2013 for Windows Desktopをインストールしてみましたが、VS2013 x86 Cross Tools コマンド プロンプトを開こうとすると、エラーが出ます。
 指定されたファイルが見つかりません。
 ERROR: Cannot determine the location of the VS Common Tools folder.
ここでNMAKE.EXEとかCL.EXEとか使えるはずですよね?でも、
 C:¥Program Files (x86)¥Microsoft Visual Studio 12.0¥VC>nmake
 nmake’ は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
なんて言われます。無いみたいなんですが、何がいけないんでしょうか?Microsoftに聞くべきかもしれませんが、分かれば教えてください。

投稿No.5
Re: VS2013 x86 Cross Tools コマンド プロンプトを開こうとすると、エラーが出ます。
m.takai  2014-06-10 11:01:04  

マシンによってはコマンドプロンプト起動時にVCの環境設定をまとめて行うバッチファイルがエラー終了するようです。社内で、個人のマシン環境で同じような現象が起こって上手く対処した例がありますので、以下に少し長いですが掲載させて頂きます。ご参考になれば幸いです。
—————————————————————
◎「VS2013 x86 Cross Tools コマンドプロンプト」でDLLのmake(nmake)が出来ない問題の対処

以下のサイトに、バッチファイルvcvars32.batにバグがあって動かない場合があると言う指摘を見つけた。
 ttp://www.shoeisha.co.jp/book/qa/15352/qlist
しかし、個人的に使っているマシン環境(SonyのVAIOノート(64bitマシン)、OS:Windows 7 Home Premium、CPU:Intel(R) Core(TM)i3350@2.27GHz)では、このファイルは呼ばれていない(echo文を挿入して確認した)。

1)では、どのバッチファイルを直したか?
「VS2013 x86 Native Tools コマンド プロンプト」では
 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat
が実行されるが、「VS2013 x64 Cross Toolsコマンドプロンプト」ではこのファイルではなく、
 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
が実行される。但し、このファイルには環境設定の記述はなく、渡された引数に応じて、実際の環境設定を行うバッチファイルが呼び出される。

「VS2013 x64 Cross Toolsコマンドプロンプト」のショートカットのプロパティでリンク先を調べてみると、以下のようになっている。
 %comspec% /k “”””C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat”””” x86_amd64
ここで、vcvarsall.batの引数とはx86_amd64になる。vcvarsall.batの中身を調べてみると、この引数に対して実際に実行されるのは(パスの表記が分かりにくいが)vcvarsx86_amd64.batで、VC以下を検索してみると、下記のバッチファイルであることが分かった。
 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat”

投稿No.7
Re: VS2013 x86 Cross Tools コマンド プロンプトを開こうとすると、エラーが出ます。
m.takai  2014-06-10 11:10:41  

続きです。 m.takai

2)このファイルをどう直したら動いたか?
[修正1]
先ずvcvarsx86_amd64.batの先頭に以下の8行を追加した。参考にしたサイトでは5行だったが、それでは足りなかった。設定内容は自分の環境に合わせて変更した。
(編集に当たっては、エディタを管理者権限で開かないと修正を保存できないので、エディタをメニューから「管理者として実行」で開き、ここにバッチファイルを読み込むようにする。)

 @SET VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\
 @SET VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\
 @SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework\
 @SET FrameworkVersion32=v4.0.30319
 @SET FrameworkDir64=C:\Windows\Microsoft.NET\Framework64\
 @SET FrameworkVersion64=v4.0.30319
 @SET Framework40Version=v3.5
 @set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\

この内、パスを与えている変数については、サブディレクトリのパスに使用される時に\マークで区切られないので、必ず\マークを最後に付ける必要があった。これらは最後の1つを除いて、定義されていなければバッチファイルの実行時にエラーになるので、必要であることが分かる。最後の1つは、リンクエラーの原因になる。nmakeの中でcl.exeがリンクを行う際に、kernel32.libが無いと言うリンク時エラーになるので、その参照パスを環境変数LIBに加えてやる必要があるが、この変数さえ定義されていれば、バッチファイルの中で追加してくれるようになっていたので、書き加えた。

投稿No.8
Re: VS2013 x86 Cross Tools コマンド プロンプトを開こうとすると、エラーが出ます。
m.takai  2014-06-10 11:11:23  

続き2です。m.takai

[修正2」
これ以外に、元々vcvarsx86_amd64.batの先頭にあった以下の3行はコメントアウトした(各行頭に::を付けた)。参考にしたサイトにそのような記述がある。確かにどの1行があってもエラーになるので、そのようにした。
::@call :GetVSCommonToolsDir
::@if “”%VS120COMNTOOLS%””==”””” goto error_no_VS120COMNTOOLSDIR
::@call “”%VS120COMNTOOLS%VCVarsQueryRegistry.bat”” 32bit 64bit

マシンによってvcvarsall.batの引数は異なってくると思われるが、どのような引数を取り得るかについては以下のサイトに説明がある。
ttp://msdn.microsoft.com/ja-jp/library/x4d2c09s.aspx

以上の修正をvcvarsx86_amd64.batに加えて保存し、再度「VS2013 x86 Cross Tools コマンドプロンプト」を起動してみると、エラーは表示されなくなり、無事DLLをnmakeできるようになった。

投稿No.9
内蔵エディタの起動について
名無しさん  2014-02-20 10:56:33  

本サイトを利用し、Prologを学習しています。
内蔵エディタが付いているようですので、使用してみたいと思いますが
起動方法が?です。教えて頂ければ助かります。

投稿No.3
Re: 内蔵エディタの起動について
m.takai  2014-02-20 16:17:28  

ユーザズマニュアルの 9-10-2.AzEditの使い方に記載ありますので
ご覧ください。

| ?-dlib_require(azedit).
yes
| ?-edit.

で起動できます。

投稿No.4
AZ-Prolog Ver7をインストールする際、Ver6は削除した方がよいのでしょうか?
takashima  2014-02-18 13:57:44  

現在、AZ-Prolog Ver6を使用しています。まだ初心者ですが。
Ver7を使用してみたいのですが、Ver6は削除した方がよいのでしょうか?

投稿No.1
Re: AZ-Prolog Ver7をインストールする際、Ver6は削除した方がよいのでしょうか?
m.takai  2014-02-18 15:58:30  

Ver7をインストールする際は、Ver6をアンインストールして下さい。
インストールと環境設定は
ttp://www.az-prolog.com/install_win
に記載されていますのでご確認頂ければと思います。

,

投稿No.2
上部へスクロール