以下过程随机选择包含一个称为选择的过程:
(define (random-choice strategy-1 strategy-2)
(choice strategy-1
strategy-2
(lambda (ship-state) (= (random 2) 0))))
如何创建随机选择两种策略的程序选择?您还可以解释如何将 lambda 作为参数从一个过程传递到另一个过程吗?
以下过程随机选择包含一个称为选择的过程:
(define (random-choice strategy-1 strategy-2)
(choice strategy-1
strategy-2
(lambda (ship-state) (= (random 2) 0))))
如何创建随机选择两种策略的程序选择?您还可以解释如何将 lambda 作为参数从一个过程传递到另一个过程吗?
下面是一个示例,说明如何在两个可能值之间随机选择一个值:
(define (choice s1 s2)
(if (zero? (random 2)) s1 s2))
该过程返回随机选择的值,取决于您如何使用它。并且 alambda
可以作为任何其他值的参数传递,它没有任何不同。例如:
((choice (lambda (x) (first x))
(lambda (x) (last x)))
'(1 2 3 4 5))
以上将在选择列表中第一个或最后一个元素的策略之间随机选择,然后将选择应用于列表。运行几次,你会看到有时1
返回,有时5
返回。