欢迎使用优快云-markdown编辑器

作者分享了阅读《Structure and Interpretation of Computer Programs》(计算机程序的构造和解释)第一章的心得,并完成了46道习题。针对练习2.1,作者提出了一种改进的有理数处理方法,确保分子分母的符号正确。

第一次写博客,还有点小激动呢(>_<)…

sicp 10天前开始读,昨天刚把第一章读完,46道题也全部做完,收获颇大。
练习2.1 定义出make-rat的一个更好的版本,使之可以同时处理。有理数为正时, make-rat应该使其规范化,使它的分子分母都为正。如果为负则只让它的分子为负。

这道题总体来说比较简单,在make-rat里进行一次判断就可以了。

(define (make-rat n d)
  (let ((g (gcd (abs n) (abs d))))
  (if (> (* n d) 0)
      (cons (abs n) (abs d))
      (cons (- (/ (abs n) g)) (/ (abs d) g)))))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值