CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Fluent UDF and Scheme Programming (https://www.cfd-online.com/Forums/fluent-udf/)
-   -   Scheme Executable Terminating Prematurely (https://www.cfd-online.com/Forums/fluent-udf/151152-scheme-executable-terminating-prematurely.html)

ec44 April 5, 2015 08:34

Scheme Executable Terminating Prematurely
 
The following program is my first scheme program that I designed to calculate the values of the variables in the compound interest formula and the compounded continuously formula. I used DrRacket to create an executable, but when I run it in Terminal (Mac), it ends after only the introduction (the part that displays the syntax) and doesn't allow the user to actually use the defined functions. How can I allow the executable to continue and allow the user to actually use the functions without simply stopping after the introduction?

#lang scheme

;INTRODUCTION

(display " a = balance, p = principle, r = rate,")
(newline)
(display " m = compounding periods, t = time")
(newline)
(newline)
(display "Compound Interest Formula:")
(newline)
(display "(solve-for-balance p r m t)")
(newline)
(display "(solve-for-principle a r m t)")
(newline)
(display "(solve-for-rate p a m t)")
(newline)
(display "(solve-for-time p a r m)")
(newline)
(display "(solve-for-principle a r m t)")
(newline)
(newline)
(display "Interest Compounded Continuously:")
(newline)
(display "(solve-for-balance-cont p r t)")
(newline)
(display "(solve-for-principle-cont a r t)")
(newline)
(display "(solve-for-rate-cont p a t)")
(newline)
(display "(solve-for-time-cont p a r)")

;COMPOUNDED INTEREST FORMULA

;Solve for Balance
(define (solve-for-balance p r m t)
(define part1
(+ 1 (/ r m)))
(define part2
(expt part1 (* m t)))
(display "$ ")
(display (* part2 p)))

;Solve for Principle
(define (solve-for-principle a r m t)
(define part1
(+ 1 (/ r m)))
(define part2
(expt part1 (* m t)))
(display "$ ")
(/ a part2))

;Solve for Rate
(define (solve-for-rate p a m t)
(define part1
(expt (/ a p) (/ 1 (* m t))))
(display (* 100 (* m (- part1 1))))
(display " %"))

;Solve for Time
(define (solve-for-time p a r m)
(define part1
(log (expt (/ a p) (/ 1 m))))
(define part2
(log (+ 1 (/ r m))))
(display (/ part1 part2))
(display " years"))

;INTEREST FORMULA COMPOUNDED CONTINUOUSLY

;Defining Euler's Number (e)
(define e 2.7182818284590452353602874713527)

;Solve for Balance (Compounded Continuously)
(define (solve-for-balance-cont p r t)
(display "$ ")
(expt (* p e) (* r t)))

;Solve for Principle (Compounded Continuously)
(define (solve-for-principle-cont a r t)
(display "$ ")
(/ a (expt e (* r t))))

;Solve for Rate (Compounded Continuously)
(define (solve-for-rate-cont p a t)
(display (*(/ (log (/ a p)) t) 100))
(display " %"))

;Solve for Time (Compounded Continuously)
(define (solve-for-time-cont p a r)
(display (/ (log (/ a p)) r))
(display " years"))

`e` April 6, 2015 04:34

Try simplifying your code and seeing exactly which line is not being executed. Should the define commands have trailing brackets?

Does this code have any relevance to Fluent? Why are you using Scheme, why not simply use Excel?


All times are GMT -4. The time now is 16:02.