www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 5810c202eeab7f1aa53b6df4e4b892403820aa53
parent 8850cdaea1b2fd7911f4872cb792de6e8400162a
Author: Matthew Flatt <mflatt@racket-lang.org>
Date:   Fri, 12 Jul 2013 09:00:21 -0600

shuffle some unstable modules and fix doc dependencies

Includes a repair for mapping a collection name to a set of
linked paths.

original commit: 8a9d885774a1b2606257fe992b74b4393ee1cb91

Diffstat:
Mpkgs/macro-debugger-pkgs/macro-debugger/info.rkt | 4++--
Mpkgs/macro-debugger-pkgs/macro-debugger/macro-debugger/syntax-browser/text.rkt | 2+-
Apkgs/macro-debugger-pkgs/macro-debugger/unstable/info.rkt | 4++++
Apkgs/macro-debugger-pkgs/macro-debugger/unstable/unstable-find.scrbl | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkgs/unstable/scribblings/find.scrbl | 73-------------------------------------------------------------------------
5 files changed, 81 insertions(+), 76 deletions(-)

diff --git a/pkgs/macro-debugger-pkgs/macro-debugger/info.rkt b/pkgs/macro-debugger-pkgs/macro-debugger/info.rkt @@ -5,11 +5,11 @@ (define deps '("base" "compatibility-lib" "data-lib" - "drracket" "gui-lib" "images" "parser-tools-lib" "unstable-list-lib" - "macro-debugger-text-lib")) + "macro-debugger-text-lib" + "unstable")) (define build-deps '("scribble-lib" "racket-doc")) diff --git a/pkgs/macro-debugger-pkgs/macro-debugger/macro-debugger/syntax-browser/text.rkt b/pkgs/macro-debugger-pkgs/macro-debugger/macro-debugger/syntax-browser/text.rkt @@ -2,7 +2,7 @@ (require racket/class racket/gui/base data/interval-map - drracket/arrow + unstable/arrow framework data/interval-map macro-debugger/syntax-browser/interfaces) diff --git a/pkgs/macro-debugger-pkgs/macro-debugger/unstable/info.rkt b/pkgs/macro-debugger-pkgs/macro-debugger/unstable/info.rkt @@ -0,0 +1,4 @@ +#lang info + +(define scribblings + '(("unstable-find.scrbl" (multi-page) (experimental)))) diff --git a/pkgs/macro-debugger-pkgs/macro-debugger/unstable/unstable-find.scrbl b/pkgs/macro-debugger-pkgs/macro-debugger/unstable/unstable-find.scrbl @@ -0,0 +1,74 @@ +#lang scribble/manual +@(require scribble/eval + unstable/scribblings/utils + (for-label unstable/find racket/contract racket/shared racket/base)) + +@(define the-eval (make-base-eval)) +@(the-eval '(require unstable/find racket/shared)) + +@unstable-title[#:tag "find"]{Find} +@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]] + +@defmodule[unstable/find] + +@defproc[(find [pred (-> any/c any/c)] + [x any/c] + [#:stop-on-found? stop-on-found? any/c #f] + [#:stop stop (or/c #f (-> any/c any/c)) #f] + [#:get-children get-children (or/c #f (-> any/c (or/c #f list?))) #f]) + list?]{ + +Returns a list of all values satisfying @racket[pred] contained in +@racket[x] (possibly including @racket[x] itself). + +If @racket[stop-on-found?] is true, the children of values satisfying +@racket[pred] are not examined. If @racket[stop] is a procedure, then +the children of values for which @racket[stop] returns true are not +examined (but the values themselves are; @racket[stop] is applied +after @racket[pred]). Only the current branch of the search is +stopped, not the whole search. + +The search recurs through pairs, vectors, boxes, and the accessible +fields of structures. If @racket[get-children] is a procedure, it can +override the default notion of a value's children by returning a list +(if it returns false, the default notion of children is used). + +No cycle detection is done, so @racket[find] on a cyclic graph may +diverge. To do cycle checking yourself, use @racket[stop] and a +mutable table. + +@examples[#:eval the-eval +(find symbol? '((all work) and (no play))) +(find list? '#((all work) and (no play)) #:stop-on-found? #t) +(find negative? 100 + #:stop-on-found? #t + #:get-children (lambda (n) (list (- n 12)))) +(find symbol? (shared ([x (cons 'a x)]) x) + #:stop (let ([table (make-hasheq)]) + (lambda (x) + (begin0 (hash-ref table x #f) + (hash-set! table x #t))))) +] +} + +@defproc[(find-first [pred (-> any/c any/c)] + [x any/c] + [#:stop stop (or/c #f (-> any/c any/c)) #f] + [#:get-children get-children (or/c #f (-> any/c (or/c #f list?))) #f] + [#:default default any/c (lambda () (error ....))]) + any/c]{ + +Like @racket[find], but only returns the first match. If no +matches are found, @racket[default] is applied as a thunk if it is a +procedure or returned otherwise. + +@examples[#:eval the-eval +(find-first symbol? '((all work) and (no play))) +(find-first list? '#((all work) and (no play))) +(find-first negative? 100 + #:get-children (lambda (n) (list (- n 12)))) +(find-first symbol? (shared ([x (cons 'a x)]) x)) +] +} + +@close-eval[the-eval] diff --git a/pkgs/unstable/scribblings/find.scrbl b/pkgs/unstable/scribblings/find.scrbl @@ -1,73 +0,0 @@ -#lang scribble/manual -@(require scribble/eval "utils.rkt" - (for-label unstable/find racket/contract racket/shared racket/base)) - -@(define the-eval (make-base-eval)) -@(the-eval '(require unstable/find racket/shared)) - -@title[#:tag "find"]{Find} -@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]] - -@defmodule[unstable/find] - -@defproc[(find [pred (-> any/c any/c)] - [x any/c] - [#:stop-on-found? stop-on-found? any/c #f] - [#:stop stop (or/c #f (-> any/c any/c)) #f] - [#:get-children get-children (or/c #f (-> any/c (or/c #f list?))) #f]) - list?]{ - -Returns a list of all values satisfying @racket[pred] contained in -@racket[x] (possibly including @racket[x] itself). - -If @racket[stop-on-found?] is true, the children of values satisfying -@racket[pred] are not examined. If @racket[stop] is a procedure, then -the children of values for which @racket[stop] returns true are not -examined (but the values themselves are; @racket[stop] is applied -after @racket[pred]). Only the current branch of the search is -stopped, not the whole search. - -The search recurs through pairs, vectors, boxes, and the accessible -fields of structures. If @racket[get-children] is a procedure, it can -override the default notion of a value's children by returning a list -(if it returns false, the default notion of children is used). - -No cycle detection is done, so @racket[find] on a cyclic graph may -diverge. To do cycle checking yourself, use @racket[stop] and a -mutable table. - -@examples[#:eval the-eval -(find symbol? '((all work) and (no play))) -(find list? '#((all work) and (no play)) #:stop-on-found? #t) -(find negative? 100 - #:stop-on-found? #t - #:get-children (lambda (n) (list (- n 12)))) -(find symbol? (shared ([x (cons 'a x)]) x) - #:stop (let ([table (make-hasheq)]) - (lambda (x) - (begin0 (hash-ref table x #f) - (hash-set! table x #t))))) -] -} - -@defproc[(find-first [pred (-> any/c any/c)] - [x any/c] - [#:stop stop (or/c #f (-> any/c any/c)) #f] - [#:get-children get-children (or/c #f (-> any/c (or/c #f list?))) #f] - [#:default default any/c (lambda () (error ....))]) - any/c]{ - -Like @racket[find], but only returns the first match. If no -matches are found, @racket[default] is applied as a thunk if it is a -procedure or returned otherwise. - -@examples[#:eval the-eval -(find-first symbol? '((all work) and (no play))) -(find-first list? '#((all work) and (no play))) -(find-first negative? 100 - #:get-children (lambda (n) (list (- n 12)))) -(find-first symbol? (shared ([x (cons 'a x)]) x)) -] -} - -@close-eval[the-eval]