Подразделение в PLT Racket - PullRequest
       0

Подразделение в PLT Racket

1 голос
/ 23 декабря 2010

Я играю сегодня вечером, написав свою собственную функцию квадратного корня. Я написал один на Python, который использует встроенную функцию round(), чтобы остановить цикл. Однако я переписываю функцию в PLT Racket, и у меня возникают проблемы с поиском правильной функции для круглых квадратов, чтобы я мог сравнить их.

#lang racket

(define (mySqrt of)
  (mySqrtWrk 0 of of))

(define (mySqrtWrk minv maxv of)
  (let* ([mid (+ minv (/ (- maxv minv) 2))]
         [squared (* mid mid)])
    (cond
      [(= of squared) mid]     <------ this never evaluates to true
      [(< of squared) (mySqrtWrk minv mid of)]
      [else (mySqrtWrk mid maxv of)])))

Может кто-нибудь отправить меня на нужную страницу документации или предложить альтернативное решение?

1 Ответ

2 голосов
/ 23 декабря 2010

Вы можете найти round, floor, quotient и многое другое в документации Racket .Но учтите также, что Ракетка (как и многие другие лиспы) имеет богатую числовую башню с точными рациональными значениями и т. Д.

...