Prolog:用户插入 int 输入并根据其大小检查输入
Prolog: user insert int input and check input according to its size
最近我参加了一些关于人工智能和逻辑的研讨会,开始学习序言。有一个简单的 c++ 程序,我希望使用 prolog 创建它的逻辑。顺序是:
1)用户插入整数输入(例如:3)。
2) 提示用户输入 3 个 id,其大小必须为 5 和整数(例如:11111,22222,333A)
3)如果输入大于或小于5或不是整数,则失败。
所以,自从我刚开始自己学习 prolog 以来,我已经做了一些研究和教程,但是我似乎无法找到我的问题的正确答案。我试了几次,但总是出错。请帮我。非常感谢你的帮助。谢谢
p/s:这不是作业。这只是我想学习和尝试的东西。感谢你。
真的这么简单?
'prompt user'(A,B,C) :- maplist('size must be 5 and integer', [A,B,C]).
'size must be 5 and integer'(N) :- read(N), integer(N), N >= 10**4, N < 10**5.
5 ?- 'prompt user'(A,B,C).
|: 1111.
false.
6 ?- 'prompt user'(A,B,C).
|: 11111.
|: 21222.
|: 99999.
A = 11111,
B = 21222,
C = 99999.
最近我参加了一些关于人工智能和逻辑的研讨会,开始学习序言。有一个简单的 c++ 程序,我希望使用 prolog 创建它的逻辑。顺序是:
1)用户插入整数输入(例如:3)。
2) 提示用户输入 3 个 id,其大小必须为 5 和整数(例如:11111,22222,333A)
3)如果输入大于或小于5或不是整数,则失败。
所以,自从我刚开始自己学习 prolog 以来,我已经做了一些研究和教程,但是我似乎无法找到我的问题的正确答案。我试了几次,但总是出错。请帮我。非常感谢你的帮助。谢谢
p/s:这不是作业。这只是我想学习和尝试的东西。感谢你。
真的这么简单?
'prompt user'(A,B,C) :- maplist('size must be 5 and integer', [A,B,C]).
'size must be 5 and integer'(N) :- read(N), integer(N), N >= 10**4, N < 10**5.
5 ?- 'prompt user'(A,B,C).
|: 1111.
false.
6 ?- 'prompt user'(A,B,C).
|: 11111.
|: 21222.
|: 99999.
A = 11111,
B = 21222,
C = 99999.