Add 'bind-in' vocabulary (the -> operator...)
parent
78e747186a
commit
fa41397a17
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
USING: kernel parser lexer locals.private ;
|
||||||
|
|
||||||
|
IN: bind-in
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
: ->
|
||||||
|
"[" parse-tokens make-locals dup push-locals
|
||||||
|
\ ] (parse-lambda) <lambda>
|
||||||
|
parsed-lambda
|
||||||
|
\ call parsed ; parsing
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
USING: kernel assocs locals combinators
|
||||||
|
math math.functions system unicode.case ;
|
||||||
|
|
||||||
|
IN: dns.cache.nx
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
: nx-cache ( -- table ) H{ } ;
|
||||||
|
|
||||||
|
: nx-cache-at ( name -- time ) >lower nx-cache at ;
|
||||||
|
: nx-cache-delete-at ( name -- ) >lower nx-cache delete-at ;
|
||||||
|
: nx-cache-set-at ( time name -- ) >lower nx-cache set-at ;
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
: now ( -- seconds ) millis 1000.0 / round >integer ;
|
||||||
|
|
||||||
|
:: non-existent-name? ( NAME -- ? )
|
||||||
|
[let | TIME [ NAME nx-cache-at ] |
|
||||||
|
{
|
||||||
|
{ [ TIME f = ] [ f ] }
|
||||||
|
{ [ TIME now <= ] [ NAME nx-cache-delete-at f ] }
|
||||||
|
{ [ t ] [ t ] }
|
||||||
|
}
|
||||||
|
cond
|
||||||
|
] ;
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
:: cache-non-existent-name ( NAME TTL -- )
|
||||||
|
[let | TIME [ TTL now + ] | TIME NAME nx-cache-set-at ] ;
|
||||||
|
|
||||||
|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
Loading…
Reference in New Issue