Thank you Jeremy! Your code is very helpful. Jinsong
On Mon, Jul 11, 2016 at 10:43 PM, Jeremy Steward <[email protected]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > Note that iota annoyingly does not work well with the numbers egg -> > it cannot figure out what an exact rational should be. So: > > ~ (use srfi-1 numbers) > ~ (iota 1 10 (/ 3 2)) > > outputs: > > ~ Error: (iota) bad argument type - not a number: 3/2 > > Instead, you could define your own `iota` procedure after importing > the numbers egg using `unfold`, or you could define something like > MATLAB's `linspace`: > > ~ (define (my-iota count #!optional (start 0) (step 1)) > ~ (unfold (lambda (x) (>= (/ (- x start) step) count)) > ~ (lambda (x) x) > ~ (lambda (x) (+ x step)) > ~ start)) > > ~ (define (linspace base limit n) > ~ (unfold (lambda (x) (> x limit)) > ~ (lambda (x) x) > ~ (lambda (x) (+ x (/ (- limit base) > ~ (- n 1)))) > ~ base)) > > ~ (linspace 1 10 10) ;=> (1 2 3 4 5 6 7 8 9 10) > ~ (linspace 0 50 5) ;=> (0 25/2 25 75/2 50) > > I'm sure I'm omitting some error checking in the above (for sequences > that would end up infinite), but it should get you on the right track > if you do find that SRFI-1 does not suffice when using exact rationals. > > Regards, > > > On 11/07/16 08:21 PM, Evan Hanson wrote: > | Hi Jinsong, > | > | SRFI-1 provides `iota' -- http://api.call-cc.org/doc/srfi-1/iota > | > | Cheers, > | > | Evan > | > | _______________________________________________ Chicken-users > | mailing list [email protected] > | https://lists.nongnu.org/mailman/listinfo/chicken-users > | > > - -- Jeremy Steward > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2 > > iQIcBAEBCAAGBQJXhFlbAAoJEKflx7ZMcbY7zIoQAJnzUGexanBT0TbCv+si8ikG > jUdQUstCMWXK/IJNMRYuaavm/c76bYxtOlrsjgv6HfXoQ8z0+mj/lwduS3GkNdvG > bL6QEWL5sgXIPmlbPWdATeslb/G+5zOVp2HygLhXoP92L5b2w+5Io5iWfBeJ9yUG > Xn6J5uxGBjyS5TQoYDQeNaTyuIqebPPxhsgCeEdKBKBr6D1kbfrZHc9MmiGXhDhh > jMpL/lQ7Wq3BcxUZYQe1MR4vn2sdm1p5tHtnAgI4xRylIyvRliSZiljMW8kwsB5S > 6/TaLJSjJeo5TVTWtzdgI8LUbWPnYm1i021DKQPbqQzI0sSwTfFrbZgzFiIQzmL/ > P4geRABA49TliHvwpUpf77DgC9U04O9bpoSM1Lzg3CTrQyANOOz5qj+S2MKLGcKU > irJgGPI+rrbHqBBuUGUOV4Lgi/+QSycyZ/JxuJZMONyWf0MjjCl4TkqB34atLHzP > xxrqe+hcronSYmz561xFNoUO3aaDtVo2gyG6eN9uEo/uH64N5Ob3B3Tw6fmQqNO2 > bz1U6waurp3QDuUBYdGT1zGL0bm7MSAAGrGEi+ZBTvPRENLlh1zw8H3bSYT9uO6S > LAQNs2GzvmREr7VuGqrceQ6C8K16B41gifo6rJGVByrr+JGlCfjFtGs5k6z0dbSo > Ug6m2Fx3aWaOpnXjlmmI > =36Ss > -----END PGP SIGNATURE----- > > _______________________________________________ > Chicken-users mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/chicken-users >
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
