#! /usr/bin/env ijconsole dot =: 3 : '''.'' 1!:3 <''/proc/self/fd/1''' hardwork =: 3 : 0 n =. 0 for_i. i.100 do. dot'' n =. n + 2 | !!8x end. n ) echo hardwork'' exit 0
!!8x takes about 6s to run on my machine so you can see that this prints dots without a newline and without getting cached. This works interactively and when piped to a file (1!:2 will also seem to work interactively, but won't be as kind to piped output). Depending on what you're doing it might be better to write to /proc/self/fd/2 (stderr). You can also make the writes conditional on isatty 1 (or 2 if you're writing to that), so that you don't get this kind of human-oriented output when a human isn't looking. An isatty conditional would incidentally suppress this output in JQt, where you'd just get an interface error from it otherwise. On Sun, 2020-01-26 at 19:33 +0300, 'Sergey Kamenev' via Programming wrote: > 26.01.2020 19:15, Brian Schott пишет: > > 'aaa' empty@(1!:2) 4 > > Thank you, Brian! > > '.' empty@(1!:2) 4 > > Really no new line after this verb in session mode! > > But I found another problem. > Output of this verb is cached in some buffer and displayed only after > invoking 'echo' verb. > I see this in ./scripts.ijs mode (on Linux) > > I has coding displaing dots in long loop and this caching make me > nervous: > I don't see signs of work of my program. > > Sergey. > > > ------------------------------------------------------------------- > --- > For information about J forums see > http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm