amb的典型应用

本文介绍了 Scheme 语言中 amb 的概念,它用于实现非确定性计算。amb 表达式允许有多个可能的值,并在求值过程中自动进行搜索,选择合适的值,如果当前选择无法满足后续计算则会回溯重试。这个特性使得程序员无需关注选择细节,只需关注逻辑本身。非确定性计算在 SQL 查询等场景中有广泛应用。
摘要由CSDN通过智能技术生成

文章引用自:

SICP 第四章总结 - Keep Coding

amb 非确定性计算

amb 的名字来自 ambiguous(歧义,多义),4.3小节在 Scheme 里扩充非确定性计算功能。非确定性计算里最关键的思想:

  • 允许一个表达式有多个可能的值

  • 在求值这种表达式时,求值器可以自动选出一个值 可能从可以选的值中任意选出一个。还需要维持与选择相关的轨迹(知道哪些元素已经选过,哪些没选过。在后续计算中要保证不出现重选的情况)

  • 如果已做选择不能满足后面的要求,求值器就会回到有关的表里再 次选择,直至求值成功;或者所有选择都已用完时求值失败

非确定性计算的过程将通过求值器自动进行的搜索实现,选择和重新选择的方法和实际过程都隐藏在求值器的实现里,程序员不需要关心,不需要做任何与之相关的事情,这一修改的意义深远,语言扩充了,语义有重要改变。

普通程序员中典型的amb的应用为sql查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值