list - 如何提取数据以在 Prolog 中列出?
问题描述
我有L
某种类型的数组,我正在尝试将数据提取到数组中,例如:
L=[day(sunday),day(monday)]
至
Target=[sunday,monday]
尝试使用forall
并在 Prolog 列表中搜索相关问题。
extract_data_to_list(L,Target) :-
member(day(Day),L),
length(L, L1),
length(Target, L1),
member(Day,Target).
电流输出:
?- extract_data_to_list([day(sunday),day(monday)],Target).
Target = [sunday, _5448] ;
Target = [_5442, sunday] ;
Target = [monday, _5448] ;
Target = [_5442, monday].
期望的输出:
?- extract_data_to_list([day(sunday),day(monday)],Target).
Target=[sunday,monday]
解决方案
这是一个理想的问题maplist
:
day_name(day(DayName), DayName).
dates_daylist(Dates, DayList) :-
maplist(day_name, Dates, DayList).
Maplist 适用于和day_name
中的每一对对应的元素。Dates
DayList
推荐阅读
- elasticsearch - Elasticsearch 每字段提升、通配符和显式字段匹配冲突
- python - 如何使用 Matplotlib 在单个图表上绘制每列中的值计数?
- kubernetes-helm - 有没有办法停止 helm 升级或使用 kubernates v1.13 版本在 helm 中创建不可变的配置映射?
- java - 将 key->values (variableName->system environment value) 的映射从 application.properties 注入到具有默认值的映射对象
- python - 类激活热图。ValueError:您正在尝试将包含 15 层的权重文件加载到具有 16 层的模型中
- python - django locale-url import error cannot import name 'urlresolvers' from 'django.core'
- amazon-web-services - 带有特使前端代理的亚马逊证书
- asp.net-mvc - 使用 NET 核心存储会话 ID
- c# - 如何根据父模型中的值验证属性?
- algorithm - Bliss 算法的时间复杂度