Commit Graph

219 Commits

Author SHA1 Message Date
Oliver Payne c1988959e3 Complete exercise 3.18 2022-05-03 22:18:22 +01:00
Oliver Payne 275fb36bd7 Replace custom adjoin with cons
Duplicates in the seen list don't matter
2022-05-03 18:58:21 +01:00
Oliver Payne 8cbd5f4788 Replace seen? with built-in memq 2022-05-03 18:55:12 +01:00
Oliver Payne dd65a0e316 Complete 3.16 and 3.17 2022-04-29 23:09:15 +01:00
Oliver Payne 91d3bafd2c Add exercise 3.8 2022-04-22 14:44:15 +01:00
Oliver Payne 3d8bad6a34 Complete exercise 3.7 2022-04-21 23:02:01 +01:00
Oliver Payne ab4554fcd8 Complete exercise 3.6 2022-04-21 21:18:22 +01:00
Oliver Payne 079ee8d08e Add exercise 3.5 2022-04-20 23:00:54 +01:00
Oliver Payne cc914f21a4 Add solution to exercise 3.4 2022-04-20 22:03:51 +01:00
Oliver Payne 6c31c289fa Add exercises 3.1 - 3.3 2022-04-18 23:00:16 +01:00
Oliver Payne fbf1b45642 Rename 2_78.rkt to generics.rkt
This file covers exercises 2.78 to 2.97
2022-04-18 22:22:16 +01:00
Oliver Payne 83104b379c Completed exercise 2.97 2022-04-17 23:07:53 +01:00
Oliver Payne 4c1ec4dbc3 Remove tracing 2022-04-17 21:42:43 +01:00
Oliver Payne 102d945c86 Implement pseudo-remainder for exercise 2.96 2022-04-15 22:53:28 +01:00
Oliver Payne 6c40d82224 Add generic gcd operator and tests for exercise 2.95 2022-04-15 22:20:02 +01:00
Oliver Payne de39768f9d Make rational operators generic 2022-04-15 14:53:05 +01:00
Oliver Payne 70068faf4d Stop fractions being reduced to their lowest terms 2022-04-15 14:45:59 +01:00
Oliver Payne d03714f749 Add polynomial division (exercise 2.91) 2022-04-15 14:37:12 +01:00
Oliver Payne 0b608a1bf9 Add negation for dense termlists 2022-04-09 19:45:59 +01:00
Oliver Payne a2e997a5eb Add dense termlist representation 2022-04-06 22:42:46 +01:00
Oliver Payne b652e0d3d0 Remove redudant workaround in apply-generic 2022-04-03 21:58:09 +01:00
Oliver Payne 3ec8012338 Get sparse polynomials working (plus a tidy up) 2022-04-03 21:51:52 +01:00
Oliver Payne 90a8f06e3c Correct tagging for termlist operations 2022-04-01 22:11:24 +01:00
Oliver Payne 05c804bb79 Remove display debugging and use racket/trace instead 2022-03-27 22:11:47 +01:00
Oliver Payne 8c12ac0e4c Fix adjoin-term
The term passed in loses its tag on each call to apply-generic, so the
term must be re-constructed.
2022-03-27 22:02:51 +01:00
Oliver Payne f598b2c3f1 Move termlist procedures to separate package 2022-03-27 20:40:07 +01:00
Oliver Payne 2b22b84540 Basic structure for generic termlists and terms
Need to check that polynomials behave as expected and also need to add
dense termlists.
2022-03-25 20:59:13 +00:00
Oliver Payne 327bac9c7d Add implementation of dense representation of polynomials (2.90) 2022-03-15 20:32:32 +00:00
Oliver Payne 27bb0bc3ee Add negation of polynomials 2022-03-12 20:51:45 +00:00
Oliver Payne 502e84bd63 Fix tagging to work correctly with integers and scheme-numbers 2022-03-12 20:21:23 +00:00
Oliver Payne 86b044fd13 Fix transform-type and make next-type an internal procedure 2022-03-12 20:20:29 +00:00
Oliver Payne 75d6bb8e05 Move project and raise from apply-generic to the coercion table 2022-03-12 16:23:22 +00:00
Oliver Payne 4968558e49 Use implicit tag for scheme-number or integer 2022-03-11 20:04:29 +00:00
Oliver Payne 5f4499fdb1 Revert "Remove explicit tags for scheme-number"
This reverts commit e551568002.
2022-03-10 22:43:45 +00:00
Oliver Payne d1dc5c94a9 Replace reals with scheme-numbers 2022-03-10 22:37:37 +00:00
Oliver Payne f3bcbcfbf8 Get negate working for numbers (includes lots of debugging) 2022-03-10 22:37:37 +00:00
Oliver Payne c4d4df12a2 Add =zero? for polynomials 2022-03-10 22:37:37 +00:00
Oliver Payne 177de641b5 Complete up to 2.86
We now have complex numbers with arbitrary number coefficients (ie
integer, rational or real).
2022-03-10 22:37:37 +00:00
Oliver Payne d391dded38 Add drop call into apply-generic
This is a little bit messy in that apply-generic changes behaviour
depending on the operation.
2022-03-10 22:37:37 +00:00
Oliver Payne ed1702ee13 Add project and drop procedures
Not yet integrated into apply-generic.
2022-03-10 22:37:37 +00:00
Oliver Payne 052bcfc318 Add real and integer 2022-03-10 22:37:16 +00:00
Oliver Payne e551568002 Remove explicit tags for scheme-number 2022-03-10 22:35:33 +00:00
Oliver Payne 13368fba13 Change let to let* in apply-generic
Not strictly necessary, but a bit neater maybe.
2022-02-24 20:40:03 +00:00
Oliver Payne 7f46244600 Completed up to 2.84 2022-02-18 20:41:52 +00:00
Oliver Payne 285b2a3f9d Add raise (2.83) 2022-02-13 20:10:54 +00:00
Oliver Payne 7147075c21 Generalised to coercion to any of the argumements (ending 2.82) 2022-02-13 17:54:57 +00:00
Oliver Payne 74050eeb6c Merge branch '2.82-attempt-1' 2022-02-13 16:24:57 +00:00
Oliver Payne a922aad66d Add coercion of scheme-number->rational 2022-02-13 15:45:40 +00:00
Oliver Payne 38dc50f4b2 Fix application of apply-generic 2022-02-13 15:45:14 +00:00
Oliver Payne b8981693d2 Add add3 operation
This is to test coercion of >2 arguments.
2022-02-09 20:59:10 +00:00