5
나는 혼란 스럽다. Clojure에서 고정 소수점 결합자가 무한 수의 응용 프로그램 후에 수학적으로 수렴하는 시퀀스의 고정 점을 평가하는 데 사용할 수있는 방법을 보여 주지만 사실 한정된 수의 단계 이후에 수렴하는 방법을 보여주고 싶었습니다. 부동 소수점의 유한 정밀도. 나는 분명히 여기에 뭔가 빠져있다.고정 소수점 연결자 사용? 왜 스택 오버플로?
(defn Y [r]
((fn [f] (f f))
(fn [f]
(r (fn [x] ((f f) x))))))
(defn simple-convergent [func]
(fn [x]
(if (zero? x)
0.0
(* 0.5 (func x)))))
그때
user=> ((Y simple-convergent) 0.)
0.0
user=> ((Y simple-convergent) 0.2)
java.lang.StackOverflowError (NO_SOURCE_FILE:0)
내가이 스택 오버 플로우를 이해하지 못하는 얻을 수 있습니다. 더 일반적으로, 내 이전 게시물에 관련,이 방법으로 시퀀스의 고정 지점을 근사하는 데 사용할 수있는 고정 소수점 결합 자의 "올바른"버전을 제시 할 수 있는지 궁금합니다.
마지막 줄은 아마도'(func (* 0.5 x))'일까요? 같은 x가 영원히 반복되는 것처럼 보입니다. –