[英]Invert atoms from list to integers - Prolog
我有这个:
streams=[[1,2,2,4],[2,1,4,2],[3,4,1,3],[4,3,3,1]]
列表中的数字都是原子,我需要将它们全部反转为整数。 流应如下所示:
streams=[[1,2,2,4],[2,1,4,2],[3,4,1,3],[4,3,3,1]]
但是对于所有格式为“整数”而不是“原子”的数字,有人可以解释一下如何将这些数字转换为整数吗?
要在 atom 和 number 之间进行转换,您可以使用内置谓词atom_number/2 :
?- atom_number(Atom, 1).
Atom = '1'.
?- atom_number('1', Number).
Number = 1.
使用maplist/3 ,您可以将该转换应用于atom 列表的所有元素:
?- maplist(atom_number, ['1','2','2','3'], Numbers).
Numbers = [1, 2, 2, 3].
要将该转换应用于列表列表中的所有原子,您可以执行以下操作:
?- maplist(maplist(atom_number), [['1','2'],['2','1','4'],['3'],['4','1']], ListOfLists).
ListOfLists = [[1, 2], [2, 1, 4], [3], [4, 1]].
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.