scheme吧 关注:1,490贴子:964
  • 15回复贴,共1

请问在SCHEME中怎么在一个条件中执行两个语句

只看楼主收藏回复

如(cond (条件) ((语句A) (语句B))) (语句A) (语句B)是怎么样连接起来的


IP属地:广东1楼2012-08-28 16:33回复
    可以写到一个函数里


    IP属地:江苏2楼2012-08-31 22:03
    收起回复
      用(and)连接


      IP属地:美国来自掌上百度3楼2012-09-01 21:05
      收起回复
        (progn (语句A) (语句B) ...)


        IP属地:澳大利亚4楼2013-02-26 16:30
        收起回复
          (begin (expression1) (expression2) ...)


          来自手机贴吧5楼2013-07-15 14:43
          回复
            可以
            (lambda ()
            (语句A)
            (语句B))


            6楼2013-07-16 23:08
            回复
              begin啊


              IP属地:上海来自Android客户端7楼2014-03-10 21:50
              回复
                scheme的cond表达式基本形式是
                (cond (<p1> <e1>)
                (<p2> <e2>)
                ...
                (<pn> <en>))
                其中(<p> <e>)中的<p>是谓词,就是值为真或假的表达式;<e>是表达式的序列,就是可以是许多个语句,不用什么连起来。
                比如我想打印一个a<x<b内的奇数,就可以这样写:
                (define (print-odd a b)
                (cond ((and (= (remainder (+ a 1) 2) 1) (< (+ a 1) b)) (display (+ a 1)) (newline) (print-odd (+ a 1) b))
                ((< a b) (print-odd (+ a 1) b))
                (else (display "Done!"))))
                再调用(print-odd 0 10)就会打印
                1
                3
                5
                7
                9
                Done!


                9楼2018-07-26 01:01
                回复