記号を使って計算する必要があります。hh:mm形式の時間を経過した分に変換する必要があります。
;; (get-minutes symbol)->number
;; convert the time in hh:mm to minutes
;; (get-minutes 6:19)-> 6* 60 + 19
(define (get-minutes time)
(let* ((a-time (string->list (symbol->string time)))
(hour (first a-time))
(minutes (third a-time)))
(+ (* hour 60) minutes)))
これは間違ったコードです。変換後に文字が表示され、正しい計算を実行できません。
何か提案はありますか?入力タイプを変更できません。
コンテキスト:入力はフライトスケジュールであるため、データ構造を変更できません。
;; -------------------------------------------------- --------------------
編集:醜い解決策を見つけました。もっと良いものを提案してください。
(define (get-minutes time)
(let* ((a-time (symbol->string time))
(hour (string->number (substring a-time 0 1)))
(minutes (string->number (substring a-time 2 4))))
(+ (* hour 60) minutes)))