숫자 목록에서 가장 작은 요소를 찾으려고합니다.상위 함수를 사용하는 목록에서 가장 작은 요소
명시 적으로 재귀를 사용할 때 사소한,하지만 내가
map
처럼 단독으로 내장 된 고차 함수를 사용하여이 작업을 수행 할 수있는 방법을 찾고 있어요
filter
,
및 foldr
.
다른 말로하면, 나는이 기능들의 조합을 사용하여 내가 원하는 것을 얻고 싶습니다.
숫자 목록에서 가장 작은 요소를 찾으려고합니다.상위 함수를 사용하는 목록에서 가장 작은 요소
명시 적으로 재귀를 사용할 때 사소한,하지만 내가
map
처럼 단독으로 내장 된 고차 함수를 사용하여이 작업을 수행 할 수있는 방법을 찾고 있어요
filter
,
및 foldr
.
다른 말로하면, 나는이 기능들의 조합을 사용하여 내가 원하는 것을 얻고 싶습니다.
foldr을 사용하십시오. 누산기는 + inf.0으로 시작합니다. combine-accumulator-and-element는 누적 기와 요소 중 가장 작은 것을 반환해야합니다.
숫자 목록에서 가장 작은 요소를 찾으려고합니다.
확실한 방법은 당신이 당신의 자신의 min
절차를 구현해야하는 경우 내장 그러나 min
#lang racket
(apply min '(5 2 3 6 4 0 9 -3 2 6))
;; => -3
, foldl 당신을 도울 것이다 사용하는 것입니다. 또한이 프로 시저를 빈 목록에서 사용할 때 오류가 발생했습니다. 0 번 인수에 적용하려고하면 내장 된 min
과 매우 유사합니다.
#lang racket
(define (min xs)
(match xs
((list x xs ...) (foldl (λ (x acc) (if (< x acc) x acc))
x
xs))
(_ (error 'min "must use non-empty list"))))
(min '(5 2 3 6 4 0 9 -3 2 6))
;; => -3
(min '())
;; => min: must use non-empty list
한도 목록에서 '정렬'기능을 사용하고 정렬 된 목록의 첫 번째 요소 수행 할 수 있습니다 구성표와
(first (sort '(5 2 3 6 4 0 9 -3 2 6) <))
;; => -3
지나치게 익숙하지를하지만 반복적으로 처음보다 작은 모든 요소를 필터링 할 수 있습니다 목록 크기가 하나가 될 때까지 목록에 하나 있습니까? – gowrath