【问题标题】:Squaring a Procedure in Scheme在 Scheme 中对过程求平方
【发布时间】:2014-10-22 19:22:14
【问题描述】:

我是一名电气工程师,正在尝试在互联网上学习方案。我想取 sin x 的平方,但我失败了。我想我需要一个使 (Number,Number) - (Number,Number) 的函数。所以它应该采用 lambda x 和 lambda f 并计算平方(f x)。但我被卡住了,我不能写这段代码。有人能写吗?

【问题讨论】:

    标签: scheme racket procedure


    【解决方案1】:

    只需嵌套函数调用。一个简单的方法是:

    (define (square x)
      (* x x))
    
    (square (sin x))
    

    或者创建一个组合函数:

    (define square-sin (compose square sin))
    
    (square-sin x)
    

    【讨论】:

      【解决方案2】:

      这里有两个想法:

      (define (sqr-f f) (compose sqr f))
      

      用法:

      ((sqr-f sin) 1)
      

      或者一个非curried版本:

      (define (sqr-f-u f . x) (sqr (apply f x)))
      

      用法:

      (sqr-f-u + 1 2)
      

      【讨论】:

        猜你喜欢
        • 2018-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多