25 lines
760 B
Racket
25 lines
760 B
Racket
#lang racket/load
|
|
|
|
(module a racket/base
|
|
(require racket/contract (only-in racket/list first second rest empty?) (prefix-in old: (only-in racket/list argmax)))
|
|
|
|
(define (argmax f lov)
|
|
(old:argmax f lov))
|
|
|
|
(provide
|
|
(contract-out
|
|
[argmax (-> (-> any/c real?) (and/c pair? list?) any/c)])))
|
|
|
|
(module b racket/base
|
|
(require 'a)
|
|
(require racket/contract/private/blame)
|
|
(with-handlers ([exn:fail:contract:blame? void])
|
|
(printf "***0: ~s\n" (argmax car '())))
|
|
(with-handlers ([exn:fail:contract:blame? void])
|
|
(printf "***1: ~s\n" (argmax car '())))
|
|
(with-handlers ([exn:fail:contract:blame? void])
|
|
(printf "***2: ~s\n" (argmax car '((apples 3)))))
|
|
(printf "3: ~s\n" (argmax car '((3 apples) (3 oranges)))))
|
|
|
|
(require 'b)
|