list - 在 Prolog 中查找列表中列表的长度
问题描述
例如:
count_blocks([[b,c,f],[a,d,g],[h,e]],C).
C=[3,3,2]
我知道我可以通过以下方式找到列表的长度:
len([], LenResult):-
LenResult is 0.
len([X|Y], LenResult):-
len(Y, L),
LenResult is L + 1.
但不确定如何计算列表中的列表长度。外部列表长度始终为 3(内部列表可能为空)。
解决方案
您应该使用长度执行映射。您可以使用 映射maplist/3
,因此您可以使用:
count_blocks(L, R) :-
maplist(length, L, R).
推荐阅读
- groovy - 在 jMeter/Groovy 中创建计时器时遇到问题
- java - 如何将 Angular 6 登录与 Spring 登录相关联
- android - 需要但未调用,Kotlin,RxJava,MVP,Mockito
- audio - FFmpeg:如何使用 ffmpeg 在 mp3 中创建旋转 3D (haas) 效果?
- python - Python:为什么 4.1-0.1=3.9999... 但 5.1-0.1=5
- reactjs - 将 this.props 传递给另一个函数的容器确实传递了一个副本
- ios - How to read offline map using MapBox
- css - css-左上折叠效果
- docker - 从运行的 docker 创建镜像
- python - Python:运行应用程序时如何在浏览器中打开用folium创建的地图