scheme吧 关注:1,489贴子:964
  • 10回复贴,共1

初学scheme,有道题看不懂,请各位帮我看看

只看楼主收藏回复


问题是这个程序的功能是什么。
如果能每步都讲解一下就更好了,不胜感激


IP属地:美国1楼2019-04-27 10:53回复
    跑一下就知道了


    IP属地:广东2楼2019-04-27 14:52
    回复
      既然能进到(not (list? (car toto)))的里层,说明这个car toto就应该不是个list呀,怎么又要去问它是不是个空表呢?而且还是eq?语义的空表。。。我怀疑这个是不是写错了
      抛去这点不谈,这个程序看起来有数表里的“基本元素”(不是官方定义,就是指那些非表、非向量结构体之类的简单元素)的个数的,但是我照着敲下来运行了下,发现它不但数基本元素,也数子表个数,甚至数空表个数。。。这个我就有点搞不懂了。
      请明白的大哥大姐们指教一下啊~


      IP属地:上海3楼2019-04-28 04:57
      收起回复
        还有R5RS上明明说空表是个隶属于自身类型的特殊类型,但我用Racket R5RS, 它又说空表就是个list......心有点累。。。


        IP属地:上海4楼2019-04-28 04:58
        回复
          看来not (list? (car toto))里面确实不该再去问是不是eq? 空表,用if改写后还是实现了同样的功能。。。。但是为什么把子表也数一遍这个是真的搞不懂。。求大神指教Scheme的程序到底应该怎么分析它的功能啊,感觉用递归真的有有趣又烧脑。


          IP属地:上海5楼2019-04-28 05:20
          收起回复
            都无法回复了?


            IP属地:广东6楼2019-04-28 08:55
            回复
              看了一下,这个函数是为了计算树有多少个叶子节点


              IP属地:浙江7楼2019-04-30 13:11
              回复
                7楼正解,树的非空叶子数


                IP属地:陕西9楼2020-02-16 21:30
                回复