zoukankan      html  css  js  c++  java
  • SICP之第一章_1.6

    (define (new-if predicate then-clause else-clause)
        (cond (predicate then-clause)
                 (else else-clause)))
    
    (define (sqrt-iter guess x)
        (new-if (good-enough? guess x)
                    guess
                    (sqrt-iter (improve guess x)
                    x)))
    

    当用new-if替代if或cond时,它忽略了自定义函数和if,cond的区别:

    if,cond:先检测是否满足条件,如满足条件,执行动作(clause)

    new-if:先将参数计算出来并代入函数,再判断是否满足条件,以及执行何种动作(clause)

    总而言之,以此书至此章的技术来看,在递归函数中是不可以使用自定义函数的,否则将陷入死循环!

    以个人观点而言,遇到递归的地方三思为妙,尤其是对于Scheme这种没有固定结构的递归,更是要倍加小心,才能尽量避免犯低级错误。

  • 相关阅读:
    RedHat的定制安装
    Linux系统概述
    嵌入式学习方法
    mysql联合查询
    mysql之count
    memcached安装
    css书写规则
    nginx的fastcgi_param参数详解
    array_2.array_rand
    array_1.array_map
  • 原文地址:https://www.cnblogs.com/codingpenguin/p/2718842.html
Copyright © 2011-2022 走看看