首页 文章

在这段代码中,下划线代表什么

提问于
浏览
1

以下代码如何工作?此代码来自Racket文档https://docs.racket-lang.org/plot/renderer2d.html?q=2d%20renderers#%28part.2.D.Line_.Renderers%29(请参阅本页的功能点) . 这不是通常的函数定义语句 . 下划线代表什么?

(define xs (build-list 5 (λ _ (random))))

xs获得以下值:

> xs
'(0.9520057193043618 0.1339193598495859 0.0019128879992944899 0.7511052254656998 0.4442323053722083)

1 回答

  • 1

    lambda可以有一个标识符列表作为参数名称(例如 (lambda (a b c) the-body ) )或单个标识符(例如 (lambda args the-body) ,它将保存所有参数的列表) .

    build-list 的函数有一个参数(当前索引) . 当您不打算使用它们的值时,通常会将参数命名为 _ .

    因此,由于我们在创建随机列表时不关心当前索引,因此该参数名为 _ . 这也可以写成 (lambda (_) ,但由于我们不关心任何(一个)参数,我们也可以写 (lambda _ .

相关问题