-- Leo's gemini proxy

-- Connecting to idiomdrottning.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

newline1 and skip1


newline1 is a version of Scheme’s newline that does nothing the first time it’s called.


(for-each (fn (newline1) (display x)) '(a b c d e))

prints


a
b
c
d
e

skip1 is a general combinator that makes these:


(define tab1 (skip1 (fn (newline) (display "    "))))
(for-each (fn (tab1) (display x)) '(ol li li li))

prints


ol
    li
    li
    li

To reset them (so they’ll skip their next invocation), call them with a single argument, 'reset.


(newline1 'reset)
(tab1 'reset)

skip1 can take any number of procedures with any number of arguments, it runs ((compose proc1 proc2 …) arg1 arg2 …).


For example,


(define conv1 (skip1 print add1 *))
(for-each conv1 '(1 2 3) '(10 20 30))

prints


41
91

newline1 and skip1 are available in brev-separate from version 1.52.


brev-separate

-- Response ended

-- Page fetched on Fri May 17 10:50:31 2024