Hello, >From notes from my perspective: - using the entire filesystem = 'maintaining state' : files ARE state. - all variables (commands and files) are accessible in global scope through absolute path: I think of (command line) programs as functions available in global scope - all variables(scripts and files) are accessible in local scope through relative path. - pipes do provide 'functional glue' - It really depends on how YOU use your shell, it provides NO constraints (gift and a curse)
I'm exited to hear your comments on this point of view :) kind regards, Dieter On Wed, Mar 14, 2018 at 8:56 PM, Pádraig Brady <p...@draigbrady.com> wrote: > On 14/03/18 00:22, Pierre Gaston wrote: > > On Mon, Jan 26, 2015 at 6:05 PM, Pádraig Brady <p...@draigbrady.com> wrote: > > > >> On 26/01/15 13:43, Greg Wooledge wrote: > >>> On Sun, Jan 25, 2015 at 08:11:41PM -0800, garegi...@gmail.com wrote: > >>>> As a programming language which paradigms does bash support. > >> Declarative, procedural, imperative? > >>> > >>> This belongs on help-b...@gnu.org so I'm Cc'ing that address. > >>> > >>> Shell scripts are procedural. > >> > >> It should be noted that shell programming is closely related to > functional > >> programming. > >> I.E. functional programming maintains no external state and provides > >> data flow synchronisation in the language. This maps closely to the > >> UNIX filter idea; data flows in and out, with no side affects to the > >> system. > >> > >> By trying to use filters and pipes instead of procedural shell > statements, > >> you get the advantage of using compiled code, and implicit multicore > >> support etc. > >> > >> cheers, > >> Pádraig. > >> > > > > Though I understand what you say and maybe you can see pipes as something > > functional(ish), > > I believe this is a misleading statement as imo shell scripting is not > even > > close to be functional in any kind of way. > > > Well my point was, filters and pipes are similar to functional programming. > IMHO shell scripts are generally better when using these concepts when > possible, > rather than using procedural shell statements. > > See also http://okmij.org/ftp/Computation/monadic-shell.html > > cheers, > Pádraig > >