Gauche: 목록의 각 요소를 변수로 결합하는 방법으로 2가지 기준을 얻어본다
각각 다음과 같은 방법으로 기준을 얻었다.
match 매크로 사용
let-values 매크로 사용
(use gauche.time)
(use util.match)
(define (use-match lis)
(match lis
((a b c d e)
(+ a b c d e))))
(define (use-let-values lis)
(let-values (((a b c d e) (apply values lis)))
(+ a b c d e)))
(define lis '(1 2 3 4 5))
(time-these/report '(cpu 3.0)
`((match . ,(cut use-match lis))
(let-values . ,(cut use-let-values lis))))
실행 결과.Benchmark: ran match, let-values, each for at least 3.0 cpu seconds.
match: 3.098 real, 3.080 cpu (3.070 user + 0.010 sys)@8370535.71/s n=25781250
let-values: 2.225 real, 3.170 cpu (3.080 user + 0.090 sys)@4066443.22/s n=12890625
Rate match let-values
match 8370536/s -- 2.058
let-values 4066443/s 0.486 --
참고 자료
Reference
이 문제에 관하여(Gauche: 목록의 각 요소를 변수로 결합하는 방법으로 2가지 기준을 얻어본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/noriok/articles/2020-10-07-match-vs-let-values텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)