【发布时间】:2022-01-11 05:03:17
【问题描述】:
我编写了这段代码来转换测量值。但是,当我使用命令 (fce cm mm 5) 运行它时,我没有看到任何输出和任何错误。
#lang racket
(define eq equal?)
(define (fce jednotka jednotka2 cislo)
(cond
((eq jednotka "mm") (mm cislo jednotka2))
((eq jednotka "cm") (cm cislo jednotka2))
((eq jednotka "m") (m cislo jednotka2))
((eq jednotka "km") (km cislo jednotka2))))
(define (mm c j)
(cond
((eq j "cm") (format "~a mm = ~a ~a" c (* c 0.1) j))
((eq j "m") (format "~a mm = ~a ~a" c (* c 0.001) j))
((eq j "km") (format "~a mm = ~a ~a" c (* c 0.000001) j))))
(define (cm c j)
(cond
((eq j "mm") (format "~a mm = ~a ~a" c (* c 0.1) j))
((eq j "m") (format "~a mm = ~a ~a" c (* c 0.001) j))
((eq j "km") (format "~a mm = ~a ~a" c (* c 0.000001) j))))
(define (m c j)
(cond
((eq j "cm") (format "~a mm = ~a ~a" c (* c 0.1) j))
((eq j "mm") (format "~a mm = ~a ~a" c (* c 0.001) j))
((eq j "km") (format "~a mm = ~a ~a" c (* c 0.000001) j))))
(define (km c j)
(cond
((eq j "cm") (format "~a mm = ~a ~a" c (* c 0.1) j))
((eq j "m") (format "~a mm = ~a ~a" c (* c 0.001) j))
((eq j "km") (format "~a mm = ~a ~a" c (* c 0.000001) j))))
【问题讨论】:
-
分别测试一些条件,看看会发生什么,例如
(eq cm "cm")。并将else子句添加到您的conds。