我需要用自然数来创建一个2的幂的Prolog谓词.自然数是:0,s(0),s(s(0))ans等等.
例如:
?- pow2(s(0),P).
P = s(s(0));
false.
?- pow2(P,s(s(0))).
P = s(0);
false.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
times2(X,Y) :-
add(X,X,Y).
pow2(0,s(0)).
pow2(s(N),Y) :-
pow2(N,Z),
times2(Z,Y).
Run Code Online (Sandbox Code Playgroud)
并且它与第一个示例完美配合,但在第二个示例中进入无限循环.
我该如何解决这个问题?
prolog exponentiation successor-arithmetics non-termination failure-slice
我有一个这种格式的日期字符串 - "DD-MM-YYYY"这成功验证:
var dateFormat = /(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-\d{4}/ ;
if(!startDate.match(dateFormat)){
alert("'Start Date' must be in format: DD-MM-YYYY");
return false;
Run Code Online (Sandbox Code Playgroud)
我需要检查插入日期是否在今天的日期之后(或今天的日期).我怎么能用JavaScript做到这一点?
我试过这个:http: //www.redips.net/javascript/date-validation/ 与分隔符,没有用.建议?