繁体   English   中英

将原子从列表反转为整数 - Prolog

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM