Solution of Emine Yurtsever
(define (birler sayi)
(item sayi '(bir iki uc dort bes alti yedi sekiz dokuz)))
(define (onlar sayi)
(item sayi '(on yirmi otuz kirk elli altmis yetmis seksen doksan)))
;the function for-4dec convert the number into 4 decimal number
(define (for-4dec sayi)
(cond ((< (count sayi) 4)(word ((repeated bl (count sayi)) "0000") sayi))
(else sayi)))
(define (binler-bas sayi)(cond ((= sayi 1) 'bin) ((= sayi 0) 'yok) (else (word (birler sayi) 'bin))))
(define (yuzler-bas sayi)(cond ((= sayi 1) 'yuz) ((= sayi 0) 'yok) (else (word (birler sayi) 'yuz))))
(define (onlar-bas sayi)(cond ((= sayi 0) 'yok) (else (onlar sayi))))
(define (birler-bas sayi)(cond ((= sayi 0) 'yok) (else (birler sayi))))
(define (olmayan? wr)(not (equal? wr 'yok)))
;In the function secim ,keep olmayan? selects the decimals which are not equal to 'yok ,since 'yok denotes the decimals which have 0 value
(define (secim sent)(accumulate word (keep olmayan? sent)))
(define (convert num)
(cond ((not (integer? num)) "The argument is not an integer")
((or (>= num 10000)(< num 0)) "In school we have not seen yet how to express this")
((= (for-4dec num) '0000) 'sifir)
(else (secim
(se (binler-bas (item 1 (for-4dec num))) (yuzler-bas (item 2 (for-4dec num)))
(onlar-bas (item 3 (for-4dec num))) (birler-bas (item 4 (for-4dec num))))))))