Skip to content

Instantly share code, notes, and snippets.

@cindywu
Created April 26, 2020 07:23
Show Gist options
  • Save cindywu/dccbf01e425b949180ae86d07d538033 to your computer and use it in GitHub Desktop.
Save cindywu/dccbf01e425b949180ae86d07d538033 to your computer and use it in GitHub Desktop.
crackle-pop process
; this works!
; (crackle-pop 15) returns 1514131211109876543210
(define (crackle-pop n)
(display n)
(if (> n 0) (crackle-pop (- n 1))))
; show crackle if divisible by 3
; (crackle-pop 15) returns Crackle1413Crackle1110Crackle87Crackle54Crackle21Crackle
(define (crackle-pop n)
(if (= 0 (remainder n 3))
(display "Crackle")
(display n))
(if (> n 0) (crackle-pop (- n 1))))
; replace if with cond
(define (crackle-pop n)
(cond ((= 0 (remainder n 3))(display "Crackle"))
(else (display n)))
(if (> n 0) (crackle-pop (- n 1))))
; show crackle if divisible by 3 show pop if divisible by 5
(define (crackle-pop n)
(cond ((= 0 (remainder n 3))(display "Crackle"))
((= 0 (remainder n 5))(display "Pop"))
(else (display n)))
(if (> n 0) (crackle-pop (- n 1))))
; show cracklepop if divisible by 3 and 5
(define (crackle-pop n)
(cond ((and (= 0 (remainder n 3))(= 0 (remainder n 5))) (display "CracklePop"))
((= 0 (remainder n 3))(display "Crackle"))
((= 0 (remainder n 5))(display "Pop"))
(else (display n)))
(if (> n 0) (crackle-pop (- n 1))))
; show numbers on new line
(define (crackle-pop n)
(cond ((and (= 0 (remainder n 3))(= 0 (remainder n 5))) (display "CracklePop\n"))
((= 0 (remainder n 3))(display "Crackle\n"))
((= 0 (remainder n 5))(display "Pop\n"))
(else (display n)))
(if (> n 0) (crackle-pop (- n 1))))
; don't print 0
(define (crackle-pop n)
(cond ((and (= 0 (remainder n 3))(= 0 (remainder n 5))) (display "CracklePop\n"))
((= 0 (remainder n 3))(display "Crackle\n"))
((= 0 (remainder n 5))(display "Pop\n"))
(else (display n)(display "\n")))
(if (> n 1) (crackle-pop (- n 1))))
; given 100, print 1 to 100
(define count 1)
(define (crackle-pop count n)
(cond ((and (= 0 (remainder count 3))(= 0 (remainder count 5))) (display "CracklePop\n"))
((= 0 (remainder count 3))(display "Crackle\n"))
((= 0 (remainder count 5))(display "Pop\n"))
(else (display count)(display "\n")))
(if (> n count) (crackle-pop (+ count 1) n)))
(crackle-pop count 100)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment