gpt4 book ai didi

lambda - 在 Prolog 对列表中查找键

转载 作者:行者123 更新时间:2023-12-04 05:25:10 25 4
gpt4 key购买 nike

我目前有一个 (Key,Value) 对列表,我想提取所有键以在另一个函数中使用。

这样我就有一个名为

PairsList 

我想
retractall(map(Key,_).

我试过:
retractall(map(PairsList[(Key,_)],_).

但这只会引发语法错误。

任何帮助都会很棒!

最佳答案

retractall它是一个强大的 Prolog 内存工具,对于动态信息管理很有用,但重要的是不要滥用它。在你的问题中,似乎无关紧要。如果你有一个对 (Key,Value) 的列表,那么

  • 如果你可以使用 SWI-Prolog,有这个有趣的库( pairs )。
    而不是 (A,B)用途 A-B ,但是对于表示形式的更改,您会获得很多。使用该库,您将使用的内置函数是 pairs_keys (对, key )
  • 没有任何库,函数(但它是一个关系,而不是一个函数)在纯 Prolog 中很容易编写。

    keys([(Key,_)|Pairs], [Key|Keys]) :- keys(Pairs, Keys)。
    键([],[])。
  • 我认为最好的方法是使用库中的 maplist( apply )和一个非常简单的谓词:

    键(对,键):- maplist(键,对,键)。
    键((K,_),K)。

    请注意,通过这种方式,我们可以重用从“实际”对表示中抽象出来的逻辑:只需添加
    键(K - _,K)。处理首选的 Prolog 方式
  • 关于lambda - 在 Prolog 对列表中查找键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279503/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com