From 028c211ace8aaa8e026dfe9f0a6ca979f4901c07 Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 11 May 2021 20:39:02 +0200 Subject: Scheme solution for week 112, part 2 --- challenge-112/abigail/README.md | 3 ++- challenge-112/abigail/scheme/ch-2.scm | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 challenge-112/abigail/scheme/ch-2.scm (limited to 'challenge-112') diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index 6fae38d608..38877538e6 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -64,6 +64,7 @@ This is just finding the `$n + 1` Fibonacci number. * [Perl](perl/ch-2.pl) * [Pascal](pascal/ch-2.p) * [Python](python/ch-2.py) -* [Ruby](ruby/ch-1.rb) +* [Ruby](ruby/ch-2.rb) +* [Scheme](scheme/ch-2.scm) ### Blog diff --git a/challenge-112/abigail/scheme/ch-2.scm b/challenge-112/abigail/scheme/ch-2.scm new file mode 100644 index 0000000000..1223c8719b --- /dev/null +++ b/challenge-112/abigail/scheme/ch-2.scm @@ -0,0 +1,25 @@ +;;; +;;; See ../README.md +;;; + +;;; +;;; Run as: guile --no-auto-compile ch-2.scm +;;; + +(use-modules (ice-9 format)) + +(define sqrt5 (sqrt 5)) +(define phi (/ (+ 1 sqrt5) 2)) + +(define (stairs) + (define n (read)) + (if (not (eof-object? n)) + (begin + (format #t "~d\n" + (inexact->exact (round (/ (expt phi (+ n 1)) sqrt5)))) + (stairs) + ) + ) +) + +(stairs) -- cgit