#!./wisp-multiline.sh
; !#
; Mathematical magic: Always get one.
;
; Via http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseQuestionsnode18.html
; (actually for learning fortran)
;
; this is the wisp scheme version which I want to compare with the fortran version.
use-modules
ice-9 format
ice-9 futures
ice-9 threads
define : magic-threaded mutex futures integer
; this can cause unordered output. It’s fun anyway :
set! futures : append futures : list : future : with-mutex mutex : format #t "~30r\n" integer
if : not : = integer 1
if : even? integer
magic-threaded mutex futures : / integer 2
magic-threaded mutex futures : truncate : + 1 : / integer 3
for-each touch futures
define : magic integer
magic-threaded
make-mutex
list
. integer
define : magic-simple integer
format #t "~30r\n" integer
if : not : = integer 1
if : even? integer
magic-simple : / integer 2
magic-simple : truncate : + 1 : / integer 3
display ";;; multithreaded magic ;;;\n"
magic 456189456156456196152615
display ";;; simple magic ;;;\n"
magic-simple 456189456156456196152615