On Thu, Apr 1, 2021 at 12:18 PM Sage Gerard <s...@sagegerard.com> 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 racket-users+unsubscr...@googlegroups.com.
> > 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 racket-users+unsubscr...@googlegroups.com.
> 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 racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAE8gKodjGk3Ktp3MshXSfU%3DN2G7JkMhdSBF_VFiPRsBz2%3D6tuA%40mail.gmail.com.

Reply via email to