[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile style

From: jerry
Subject: guile style
Date: Fri, 18 Jun 2021 20:55:34 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

I am fairly new to guile and scheme. People tell me that I should use a functional style.

I have 3 solutions for project euler problem #1. The first is functional, the second is imperative and the third is written in "Little Schemer" style.

I was hoping other guile users would comment on preferences or the "correct way". Sorry in advance for any wrapping problems that may occur.

#!/usr/local/bin/guile  -s
(use-modules (srfi srfi-1) (jpd stdio)) ;; for folds
(define N 1000)

(define ans
  (fold + 0
      (lambda (x) (or (= 0 (modulo x 3)) (= 0 (modulo x 5))))
      (iota N))))
(print ans)

(define ans 0)
(for i N
  (if (or (= 0 (modulo i 3)) (= 0 (modulo i 5))) (set! ans (+ ans i))))
(print ans)

(define ans
  (let loop ((i 1) (ans 0))
      ((>= i N) ans)
      ((or (= 0 (modulo i 3)) (= 0 (modulo i 5))) (loop (1+ i) (+ ans i)))
      (else (loop (1+ i) ans)) )))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]