/ / चिकन योजना स्क्रिप्ट पैरामीटर में नंबर का उपयोग कैसे करें - स्कीम, चिकन-स्कीम

चिकन स्कीम स्क्रिप्ट पैरामीटर - स्कीम, चिकन-स्कीम में नंबर का उपयोग कैसे करें

यहाँ मेरी योजना कोड है:

(define (fact n)
(if (= n 1)
1
(* n (fact (- n 1)))))
(define (main args)
(fact (car args)))

तब मैं इस कूट को स्क्रिप्ट के रूप में bash में इस कमांड के साथ चलाता हूं:

csi -ss test.scm 4

हालाँकि, दुभाषिया को यह त्रुटि संदेश मिलता है:

Error: (=) bad argument type: "4"

Call history:

<syntax>      (##core#lambda (n) (define (iter num result) (if (> num n) result (iter (+ num 1) (* result num)))) ...
<syntax>      [fact2] (##core#let ((iter (##core#undefined))) (##core#set! iter (##core#lambda (num result) (if (> num n) ...
<syntax>      [fact2] (##core#begin (##core#set! iter (##core#lambda (num result) (if (> num n) result (iter (+ num 1) (* ...
<syntax>      [fact2] (##core#set! iter (##core#lambda (num result) (if (> num n) result (iter (+ num 1) (* result num))))...
<syntax>      [fact2] (##core#lambda (num result) (if (> num n) result (iter (+ num 1) (* result num))))
<syntax>      [iter] (##core#begin (##core#if (> num n) result (iter (+ num 1) (* result num))))
<syntax>      [iter] (##core#if (> num n) result (iter (+ num 1) (* result num)))
<syntax>      [iter] (> num n)
<syntax>      [iter] (iter (+ num 1) (* result num))
<syntax>      [iter] (+ num 1)
<syntax>      [iter] (* result num)
<syntax>      [fact2] (iter 1 1)
<syntax>      [fact2] (##core#undefined)
<eval>    [main] (fact (car args))
<eval>    [main] (car args)
<eval>    [fact] (= n 1)    <--

मुझे लगता है कि दुभाषिया 4 तर्क को एक स्ट्रिंग के रूप में लेता है, इसलिए CHICKEN योजना स्क्रिप्ट पैरामीटर में संख्या का उपयोग कैसे करें?

उत्तर:

जवाब के लिए 2 № 1

प्रयत्न string-> संख्या, जो एक मानक R5RS प्रक्रिया है:

(define (main args)
(fact (string->number (car args))))