【发布时间】:2017-11-04 03:10:02
【问题描述】:
我是序言和声明式编程的新手,我很难实现以下目标。
我正在关注this tutorial,现在想在一个页面上显示一些链接。要显示哪些链接取决于某些事实/变量。
这是我当前的代码:
link_collection(Request) :-
http_parameters(Request,
[
foo(Foo, [optional(true)])
]),
reply_html_page(
[title('Dynamic Link Collection')],
[
a([href='/questionalice'], 'Question Alice'), /* Should only show if has(investigate, body) is true */
a([href='/questionbob'], 'Question Bob'), /* Should only show if Foo = bar */
a([href='/investigatebody'], 'Investigate Body') /* Show always */
]
).
请注意,“排列”的数量不允许我只是“或”link_collection 语句。我也希望条件任意复杂。
【问题讨论】:
-
当写像
a这样的HTML标签时,你需要把html//1括起来。试试html([a(href='...', ...), ...]),对你有用吗? -
否 - reply_html_page 自动将其包装在 html//1 中。此代码工作正常,但链接是静态的并且始终显示,无论条件如何。
标签: prolog swi-prolog