prolog - 有人可以解释一下 Prolog 列表中嵌套对的含义吗?
问题描述
我知道 Prolog 列表不是扁平的,但它们是嵌套的对.. 有人可以向我解释它的实际含义吗?
解决方案
我不能对所有 Prolog 实现都这么说,但一般来说,每个列表都由Head
and组成Tail
(其中Head
是列表的元素,Tail
也是一个列表),或者它是空的,既没有Head
也没有Tail
。
所以一个列表L = [a, b, c, d]
看起来像这样:
head(L) = a
tail(L) = [b, c, d]
或者,
[H | T] = [a | [b, c, d]]
那么[b, c, d] = [b | [c, d]]
,[c, d] = [c | [d]]
和[d] = [d | []]
where[]
是一个空列表。
空列表 ,[]
是一个例外,不能进一步划分。
或以树的形式:
* - node
[] - empty list
*
/ \
a *
/ \
b *
/ \
c *
/ \
d []
推荐阅读
- javascript - Android 上的 Cordova 插件错误 - cordova-plugin-secure-key-store
- java - JBOSS EAP 7.3:如何覆盖所有服务器或服务器组的 jboss.as.jpa.providerModule?
- django - 如何使用 Django 中的会话将所有表单数据从一个视图发送到另一个视图
- html - 为什么 Spartan 字体不垂直居中?
- django - 使用 Boto3 将 Django 表单上传到 AWS S3 会导致空文件
- php - 自动装配如何知道要通过什么类?
- java - 有没有将字符串中的整数转换为 JAVA 中的 ASCII 字符的解决方案?
- ios - 第二次实例化 ARSCNView 时崩溃
- mongodb - mongodb成员卡在startup2中
- python - 如何覆盖python脚本文件中的一些分配?