【问题标题】:Scheme: Arrow -> What does it mean?方案:箭头 -> 是什么意思?
【发布时间】:2016-05-12 12:05:38
【问题描述】:

我正在学习函数式编程课程,并使用 SICP 这本书作为参考。在书中的几个地方,我遇到了在过程定义中使用 '->' 箭头。

例子:

(define (segments->painter segment-list)
    (lambda ...

(define (tree->list tree)
    (if (...

(define (scheme-number->complex n)
    (make-complex-from-real ...

那么,'->' 箭头是什么意思?表示该过程将一件事转换为另一件事是否是一种命名约定?比如树入列表? 如果不; 箭头代表什么?

谢谢!

【问题讨论】:

    标签: syntax scheme


    【解决方案1】:

    正如@sepp2k 提到的 -> 是名称的一部分,它本身并不意味着任何东西。 约定是在“转换”(松散地使用)函数的名称中使用 ->。 函数string->list 有一个字符串作为输入并产生一个字符列表。

    在大多数情况下,您可以将-> 发音为“to”。也就是说,string->list 发音为“string to list”,如果您要大声朗读代码。

    【讨论】:

      【解决方案2】:

      表示过程将一件事转换为另一件事是命名约定吗?比如tree-into-list?

      没错。

      【讨论】:

      • 谢谢你,@sepp2k!看看我是否正确:箭头本身,当用于说“(定义(年龄->天数...”)时,根本不做任何事情?它只是表明所述过程将转换年龄到活的天数。
      • @northerner 这是名字的一部分。从句法上讲,它没有特殊意义。
      • 这是一个非常常见的约定,用于标准过程的名称,例如list->string 和string->list。
      猜你喜欢
      • 2014-03-16
      • 2013-05-01
      • 2021-03-28
      • 2018-10-08
      • 1970-01-01
      • 2019-10-17
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多