내가 follwing을 함수를 쓴 경우 어떻게 알 수 있습니까 : let str2lst str =
let rec f s acc =
match s with
| "" -> acc
| _ -> f (s.Substring 1) (s.[0]::acc)
f str []
은 F # 컴파일러는 루프로 설정되어 있다면
나는 ocaml을 배우기 시작했으며, 언어에서 재귀의 힘을 정말로 감사하고있다. 그러나 내가 걱정하는 한 가지는 스택 오버플로입니다. ocaml이 함수 호출 용 스택을 사용하는 경우 스택 오버플로가 발생하지 않습니까? 예를 들어, 다음 함수가있는 경우 : let rec sum x =
if x > 1 then f(x - 1) + x
else
친구가 (defn sum [coll acc] (if (empty? coll) acc (recur (rest coll) (+ (first coll) acc))))
(time (sum (range 1 9999999) 0))
Clojure의 나에게이 코드를주고 그것을 유사한 스칼라 구현에 대한 요금을 어떻게하는지 나에게 물었다. 이 같은 스칼라 코드 내가
누군가이 (plt) Scheme 코드를 Clojure로 다시 작성할 수 있습니까? 함께 절차 F, G 및 H를 축소하지와 코드가 충돌없이 불명확하게 실행할 수 있도록하는 방식으로 (define (f n)
(printf "(f ~a)~n" n)
(g n))
(define (g n)
(printf "(g ~a)~n" n)
JVM 구현이 다른 점은 무엇입니까 (라이센스 제외)? 모든 JVM은 일반 처리를위한 유형 삭제를 구현합니까? 사이의 차이점은 다음과 같습니다 하는 JRockit IBM JVM SUN JVM 오픈 JDK Blackdown 의 Kaffe .... . Tail-Call-Optimization을 사용하여 그 중 하나를 거래합니까?
이 질문에 이어 : how-do-i-check-if-gcc-is-performing-tail-recursion-optimization, gcc를 -fPIC와 함께 사용하면이 최적화가 파괴 된 것으로 나타났습니다. 공유 라이브러리를 만들었지 만 -fPIC 옵션이 필요하지 않은 것 같습니다. 음, 내 질문은, 왜 - fPIC가 gcc 최적화를 변경합니까? 어떤