习题2.1

先上代码

(def number first)
(def denom last)
(defn print-rat [x](println) (print (number x)) (print "/") (println (denom x)))
;(defn make-rat [n d](let [g (gcd n d)] (list (/ n g) (/ d g) )  ))
;旧版


(defn abs [x] (if (< x 0) (- 0 x) x))
(defn % [a b]  (if (< (abs a) (abs b)) a (% (- a b ) b )))

(defn gcd [a b]
  (if (= b 0)
    a
    (gcd b (% a b)
         )
    )
  )

(defn make-rat [n d]
  (let [g (gcd (abs n) (abs d))] 
    (list (if 
            (> (* n d) 0) 
            (abs (/ n g)) 
            (- 0 (abs (/ n g)))
          ) 
          (abs (/ d g) )  
          )
    )
  )

对以上代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值