- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谓词 if_/3
似乎是 Stack Overflow Prolog 部分的少数主要贡献者之一。
这个谓词是这样实现的,由@false 提供:
if_(If_1, Then_0, Else_0) :-
call(If_1, T),
( T == true -> call(Then_0)
; T == false -> call(Else_0)
; nonvar(T) -> throw(error(type_error(boolean,T),_))
; /* var(T) */ throw(error(instantiation_error,_))
).
if -> then ; else
的经典 if-then-else 构造。
最佳答案
在老式的 Prolog 代码中,以下模式经常出现:
谓词([],...)。
谓词([L|Ls], ...) :-
条件(L),
然后(Ls,...)。
谓词([L|Ls], ...) :-
\+ 条件(L),
否则(Ls,...)。
我在这里使用列表作为发生这种情况的示例(例如,参见 include/3
、exclude/3
等),尽管这种模式当然也出现在其他地方。
悲剧如下:
'.'(_, _)
作为他们第一个论点的主要仿函数和数量。 if_/3
的发明,这经常被错误地写成:
if_/3
,你可以这样写:
condition
格式为
(=)/2
, 或
(#=)/2
, 第一个甚至附带
library(reif)
免费 .
关于if-statement - if_/3 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833370/
我正在做一些简单的exercises感受该语言。 is_list([]). is_list([_|_]). my_flatten([],[]). my_flatten([X|Xs],RR) :-
谓词 if_/3 似乎是 Stack Overflow Prolog 部分的少数主要贡献者之一。 这个谓词是这样实现的,由@false 提供: if_(If_1, Then_0, Else_0) :-
我正在编写一个标记器,我想使用 if_/3 在我的代码中保留logical-purity。 该代码看起来像左侧的以下代码1-但我希望它看起来像右侧的代码。 if_(Cond1_1,%(Cond1_1
以下代码适用于 Visual Studio 2005,但在使用 g++ 4.4.5 编译时出现编译器错误: #include #include template struct A { vo
正如我在另一个 StackOverflow 答案中所指出的,我似乎再也找不到了,这种模式经常出现在实际的 Prolog 代码中: pred(X) :- guard(X), ... pr
在 C++ 中是否有 boost::mpl::if_ 的替代品?我没有机会使用 boost。 最佳答案 std::conditional (C++11) should fit your needs.也
我是 Boost.MPL 库的新手,有一些“初学者问题” 看看这个例子: template struct A { typedef boost::function_types::paramete
我是一名优秀的程序员,十分优秀!