0
A
回答
3
从考虑描述你想要的结果开始。您可以将分解为Start
和End
,并且Start
的长度应为Length
。
split(List, Length, Start, End) :-
length(Start, Length),
append(Start, End, List).
作为注,length
和append
订单将使效率的差异。如果append
被放在第一位,那么追加将统一Start
与List
的第一个零元素,并将在长度检查上失败,然后将统一Start
与第一个元素,然后前两个,然后三个,依此类推,直到它到达前缀为List
,长度为Length
。您可以首先将length
目标放在第一位,这样可以避免所有这些明显的死胡同,这将以一个正确大小的列表开始。
相关问题
- 1. 拆分为两个部分
- 2. 将屏幕拆分为两部分
- 3. 将矢量拆分为两部分
- 4. 将字符串拆分为两部分
- 5. 将Android应用拆分为两部分
- 6. 将SSIS中的列拆分为数字部分和列值的其余部分
- 7. 将列表拆分成平衡长度的部分
- 8. 将div拆分为两部分,并将内容加载到第二部分
- 9. 将列表拆分为大约相等长度的N个部分
- 10. HTML将一个部分拆分为两列
- 11. 如何将列表拆分为C#中的部分?
- 12. 将Ienumerable分为两部分
- 13. 将URL拆分为其组成部分的正则表达式
- 14. SQL Server 2008 R2:将列拆分为两部分
- 15. IOS:如何将UIImage拆分为部分
- 16. 将页面拆分为2个部分
- 17. 将文本拆分为部分
- 18. 将Spark数据帧拆分为部分
- 19. 将元组拆分为n个部分
- 20. 分裂阵列分为两个部分
- 21. 如何在Swift中将字符串拆分为两个部分:
- 22. 如何在批量中将URL拆分为其组成部分?
- 23. 将列表分为几部分
- 24. 拆分中的R列分为两个
- 25. 在第一行(和部分)中分组有图像的表格,其余部分有不同长度的文本
- 26. 将列表拆分为两个
- 27. 将100个号码拆分为N个相同长度的部分
- 28. 将列分成两部分
- 29. 拆分Prolog的谓词分为两个部分,并执行在
- 30. 拆分列表分为
使用长度/ 2并追加/ 3 – CapelliC
优雅! (我参考之前的评论)。递归解决方案很好,但使用长度和附加方式更容易。 –