[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-bash] which paradigms does bash support
From: |
Dieter Van Eessen |
Subject: |
Re: [Help-bash] which paradigms does bash support |
Date: |
Thu, 15 Mar 2018 11:06:01 +0100 |
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, garegin16@gmail.com wrote:
> >>>> As a programming language which paradigms does bash support.
> >> Declarative, procedural, imperative?
> >>>
> >>> This belongs on help-bash@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
>
>