1

私が探している機能は次のようなものです:

(split 1/3) => (1 . 3)
(split 1093/209) => (1093 . 209)

RnRS、SRFI、またはカスタム実装で可能ですか?

4

1 に答える 1

4

はい。有理数の分子と分母を取得するには、次の 2 つの手順を使用できます。

(numerator (/ 6 4))    ⇒  3
(denominator (/ 6 4))  ⇒  2

それが示すように、返される値は最低の項です。レポートでは、分母が常に正であり、0 の分母が 1 と定義されていることが指定されています。

この動作は長い間変更されていません。R3RS でも最新の R7RS まで同じ記述が見られるので、現在存在するすべての Scheme 実装に存在すると予想できます。

楽しみのために:

(define (split number)
  (cons (numerator number)
        (denominator number)))
于 2014-04-18T10:31:26.323 に答える