質問編集履歴
2
内容の充実化
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
prologを用いて,ある自然数(0を含む)Bを与えたときに,B以下となる自然数Aを列挙していく,というものをA=0からとA=Bから出していくという者の二通りで別々に組みたいのですが,勉強したてということもあり,うまくできません.
|
2
2
|
欲しい結果としては,
|
3
|
-
le(A,
|
3
|
+
le(A,s(s(s(0)))).
|
4
4
|
A=0;
|
5
5
|
A=s(0);
|
6
6
|
A=s(s(0));
|
@@ -9,15 +9,17 @@
|
|
9
9
|
もしくはこれの逆順で表示されるものです.
|
10
10
|
s()は1を加算するように決まっていて,s(0)=1, s(s(0))=2のようになります.
|
11
11
|
|
12
|
+
Ubuntu20.04で行っています.
|
12
13
|
|
14
|
+
|
13
|
-
0から列挙していこうとして,次のようなものを書いたのですが,これだとMが加算されると0じゃなくなってしまい,うまく回らないです.
|
15
|
+
0から列挙(昇順)していこうとして,次のようなものを書いたのですが,これだとMが加算されると0じゃなくなってしまい,うまく回らないです.
|
14
16
|
```prolog
|
15
17
|
ils(M,N) :- M<N.
|
16
18
|
le(0,_).
|
17
19
|
le(s(M),N) :- le(M,N), ils(M,N).
|
18
20
|
```
|
19
21
|
|
20
|
-
次にA=Bから列挙しようとして次のようなものを描いたのですが,想定した動きをしてくれませんでした.
|
22
|
+
次にA=Bから列挙(降順)しようとして次のようなものを描いたのですが,想定した動きをしてくれませんでした.
|
21
23
|
|
22
24
|
```prolog
|
23
25
|
le(N,N).
|
1
内容の充実化
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
prologを用いて,ある自然数(0を含む)Bを与えたときに,B以下となる自然数Aを列挙していく,というものをA=0からとA=Bから出していくという者の二通りで別々に組みたいのですが,勉強したてということもあり,うまくできません.
|
2
|
+
欲しい結果としては,
|
3
|
+
le(A,3).
|
4
|
+
A=0;
|
5
|
+
A=s(0);
|
6
|
+
A=s(s(0));
|
7
|
+
A=s(s(s(0))).
|
8
|
+
false
|
9
|
+
もしくはこれの逆順で表示されるものです.
|
10
|
+
s()は1を加算するように決まっていて,s(0)=1, s(s(0))=2のようになります.
|
11
|
+
|
12
|
+
|
2
13
|
0から列挙していこうとして,次のようなものを書いたのですが,これだとMが加算されると0じゃなくなってしまい,うまく回らないです.
|
3
14
|
```prolog
|
4
15
|
ils(M,N) :- M<N.
|