自然数 (0、1、2、....など) を消費し、記号 I を使用して単項 (基数 1) で表す文字列を返し、単項の後に数値を 10 進数で表示する関数を設計しています。形。したがって、2 と入力すると、 が得られ"II (2)"
ます。5、私は得るだろう"IIIII (5)"
.
私はこのようにしました:
(define (number->unary c )
(cond
[(= c 1 ) "I (1)" ]
[(= c 2 ) "II (2)" ]
[(= c 3) "III (3)"]
[(= c 4) "IIII (4)"]
[(= c 5) "IIIII (5)"]
[(= c 6) "IIIIII (6)"]
[(= c 7) "IIIIIII (7)"]
[(= c 8) "IIIIIIII (8)"]
[(= c 9) "IIIIIIIII (9)"]
[(= c 10) "IIIIIIIIII (10)"]))
しかし、この問題を解決する簡単な方法はありますか? number->string、string-appends、およびレプリケートについて読んでいますが、どこから始めればよいかわかりません。