首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在此示例中将lambda作为参数进行传递

在此示例中将lambda作为参数进行传递
EN

Stack Overflow用户
提问于 2013-02-06 08:29:48
回答 1查看 204关注 0票数 1

以下随机选择过程包含一个名为choice的过程:

代码语言:javascript
复制
(define (random-choice strategy-1 strategy-2) 
 (choice strategy-1
 strategy-2
 (lambda (ship-state) (= (random 2) 0))))

如何创建随机选择这两种策略的过程选择?您还能解释一下lambda如何作为参数从一个过程传递到另一个过程吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 09:25:39

下面的示例展示了如何在两个可能的值之间随机选择一个值:

代码语言:javascript
复制
(define (choice s1 s2)
  (if (zero? (random 2)) s1 s2))

该过程返回随机选择的值,如何使用它由您决定。lambda可以像其他值一样作为参数传递,这没有什么不同。例如:

代码语言:javascript
复制
((choice (lambda (x) (first x))
         (lambda (x) (last  x)))
 '(1 2 3 4 5))

上面的代码将在选择列表中的第一个或最后一个元素的策略之间随机选择,然后将选择应用于列表。运行几次,您会看到有时返回1,有时返回5

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14719535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档