On Thu, Apr 1, 2021 at 12:18 PM Sage Gerard <[email protected]> wrote: > > Neat! Thanks for this. Did you make sure to list your scribble file in > `scribblings` under info.rkt? >
I did, yes. Although, now that you mention it, when I do raco setup value-evt it does all the things, says "Building documentation" but the .html file did not appear in the directory and it's not linked into my local doc set. I hadn't noticed because I had previously created the file directly using 'scribble value-evt.scrbl' What might I have done wrong? > On 4/1/21 12:12 PM, David Storrs wrote: > > Wraps an arbitrary value into a synchronizable event. The > > synchronization result of the event is the original value, with two > > exceptions: procedures sync to their return value and lists sync > > recursively. Both of these values can be disabled via keywords. > > > > The package server is telling me that it needs documentation. That > > confuses me since it has a .scrbl file and the .html was already > > present in the repository. ISTR that the docs are only built once > > every 24 hours, so presumably they will pop up at some point? > > > > Examples: > > > > ; value-evts are both evt? and value-evt?. They sync to their argument > >> (define e (value-evt 9)) > >> e > > #<value-evt> > >> (evt? e) > > #t > >> (value-evt? e) > > #t > >> (sync e) > > 9 > > ; > > ; By default, syncing on a procedure syncs to the return value > >> (define proc (lambda () (+ 2 2))) > >> (sync (value-evt proc)) > > 4 > > ; > > ; You can instead get the procedure itself back > >> (sync (value-evt proc #:eval-proc? #f)) > > #<procedure:proc> > > ; > > ; It's not a problem to specify #:eval-proc? on something that isn't a > > procedure > >> (sync (value-evt "eval-proc? keyword is ignored for non-proc" #:eval-proc? > >> #f)) > > "eval-proc? keyword is ignored for non-proc" > > ; > > ; eventify always returns an evt > > ; Things that are evts are unchanged > >> (define ch (make-channel)) > >> (evt? ch) > > #t > >> (eq? ch (eventify ch)) > > #t > > ; > > ; Things that are not evts become value-evts > >> (evt? 'bob) > > #f > >> (evt? (eventify 'bob)) > > #t > > ; > > ; by default, value-evts containing a list sync recursively > >> (let ([result-ch (make-channel)] > > [arg-ch1 (make-channel)] > > [arg-ch2 (make-channel)]) > > (void (thread (λ () (channel-put result-ch (sync (value-evt (list > > arg-ch1 arg-ch2))))))) > > (channel-put arg-ch1 'arg1-ch-ok) > > (channel-put arg-ch2 'arg2-ch-ok) > > (sync result-ch)) > > '(arg1-ch-ok arg2-ch-ok) > > ; > > ; You can ask for it to return the original list > >> (let ([arg-ch1 (make-channel)] > > [arg-ch2 (make-channel)]) > > (sync (value-evt (list arg-ch1 arg-ch2) #:recurse-lists? #f))) > > '(#<channel> #<channel>) > > ; > > ; all-evt is the same as value-evt but takes a rest argument > > ; so you don't have to supply your own list > >> (let ([result-ch (make-channel)] > > [arg-ch1 (make-channel)] > > [arg-ch2 (make-channel)]) > > (define e (all-evt arg-ch1 arg-ch2)) > > (printf "all-evt returns: ~v" e) > > (void (thread (λ () (channel-put result-ch (sync e))))) > > (channel-put arg-ch1 'arg1-ch-ok) > > (channel-put arg-ch2 'arg2-ch-ok) > > (sync result-ch)) > > all-evt returns: #<value-evt> > > '(arg1-ch-ok arg2-ch-ok) > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to [email protected]. > > To view this discussion on the web visit > > https://groups.google.com/d/msgid/racket-users/CAE8gKocr0FbpTKwgNcseNjjA_-64f4exQDkgfPPxxvFpR16pww%40mail.gmail.com. > > -- > ~slg > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/99793234-257c-d8e5-7454-a1d911d2ab66%40sagegerard.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CAE8gKodjGk3Ktp3MshXSfU%3DN2G7JkMhdSBF_VFiPRsBz2%3D6tuA%40mail.gmail.com.

