Initial commit
This commit is contained in:
commit
9fa67213bf
43
.gitignore
vendored
Normal file
43
.gitignore
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
|
||||||
|
# flymake-mode
|
||||||
|
*_flymake.*
|
||||||
|
|
||||||
|
# eshell files
|
||||||
|
/eshell/history
|
||||||
|
/eshell/lastdir
|
||||||
|
|
||||||
|
# elpa packages
|
||||||
|
/elpa/
|
||||||
|
|
||||||
|
# reftex files
|
||||||
|
*.rel
|
||||||
|
|
||||||
|
# AUCTeX auto folder
|
||||||
|
/auto/
|
||||||
|
|
||||||
|
# cask packages
|
||||||
|
.cask/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Flycheck
|
||||||
|
flycheck_*.el
|
||||||
|
|
||||||
|
# server auth directory
|
||||||
|
/server/
|
||||||
|
|
||||||
|
# projectiles files
|
||||||
|
.projectile
|
||||||
|
|
||||||
|
# directory configuration
|
||||||
|
.dir-locals.el
|
||||||
|
|
||||||
|
# network security
|
||||||
|
/network-security.data
|
||||||
58
chapter2.lisp
Normal file
58
chapter2.lisp
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
(defun add-rat (x y)
|
||||||
|
(make-rat (+ (* (numer x) (denom y))
|
||||||
|
(* (numer y) (denom x)))
|
||||||
|
(* (denom x) (denom y))))
|
||||||
|
|
||||||
|
(defun sub-rat (x y)
|
||||||
|
(make-rat (- (* (numer x) (denom y))
|
||||||
|
(* (numer y) (denom x)))
|
||||||
|
(* (denom x) (denom y))))
|
||||||
|
|
||||||
|
(defun mul-rat (x y)
|
||||||
|
(make-rat (* (numer x) (numer y))
|
||||||
|
(* (denom x) (denom y))))
|
||||||
|
|
||||||
|
(defun div-rat (x y)
|
||||||
|
(make-rat (* (numer x) (denom y))
|
||||||
|
(* (numer y) (denom x))))
|
||||||
|
|
||||||
|
(defun equal-ratp (x y)
|
||||||
|
(= (* (numer x) (denom y))
|
||||||
|
(* (numer y) (denom x))))
|
||||||
|
|
||||||
|
(defun make-rat (n d)
|
||||||
|
(let ((g (gcd n d)))
|
||||||
|
(cons (/ n g) (/ d g))))
|
||||||
|
|
||||||
|
(defun numer (x) (car x))
|
||||||
|
(defun denom (x) (cdr x))
|
||||||
|
|
||||||
|
(defun print-rat (x)
|
||||||
|
(format t "~a/" (numer x))
|
||||||
|
(format t "~a~%" (denom x)))
|
||||||
|
|
||||||
|
;; Exercise 2.2
|
||||||
|
(defun make-segment (start end)
|
||||||
|
(cons
|
||||||
|
(make-point (x-point start) (y-point start))
|
||||||
|
(make-point (x-point end) (y-point end))))
|
||||||
|
|
||||||
|
(defun start-segment (segment) (car segment))
|
||||||
|
(defun end-segment (segment) (cdr segment))
|
||||||
|
|
||||||
|
(defun average (x y)
|
||||||
|
(/ (+ x y) 2))
|
||||||
|
(defun midpoint-segment (segment)
|
||||||
|
(make-point (average (x-point (start-segment segment))
|
||||||
|
(x-point (end-segment segment)))
|
||||||
|
(average (y-point (start-segment segment))
|
||||||
|
(y-point (end-segment segment)))))
|
||||||
|
|
||||||
|
(defun make-point (x y)
|
||||||
|
(cons x y))
|
||||||
|
|
||||||
|
(defun x-point (point) (car point))
|
||||||
|
(defun y-point (point) (cdr point))
|
||||||
|
|
||||||
|
(defun print-point (p)
|
||||||
|
(format t "(~a,~a)~%" (x-point p) (y-point p)))
|
||||||
Loading…
x
Reference in New Issue
Block a user