[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-bash] Closure concept in bash
From: |
Dan Douglas |
Subject: |
Re: [Help-bash] Closure concept in bash |
Date: |
Tue, 31 Jan 2012 15:52:54 -0600 |
User-agent: |
KMail/4.7.4 (Linux/3.1.6-pf; KDE/4.7.4; x86_64; ; ) |
On Tuesday, January 31, 2012 03:21:02 PM Peng Yu wrote:
> I don't see why closure can not live with current features of bash.
> JavaScript has both local, global variables and closure. I don't think
> that you statement that bash will be broken if closure is added is
> necessarily true. So I will ignore your any further arguments down
> below unless you can prove you statement.
>
> Also, my philosophy is that no language is static, to improve
> languages it is worthwhile to scrutinize the pros and cons of various
> features. Many languages have changed dramatically over the last a few
> years. Many code written for older versions has to be updated to catch
> up with latest development. There is no reason that bash should not be
> improved just because bash should be 100% backward compatible.
>
> I'd like to contribute to bash by raising questions to discuss various
> potential features. No matter whether they will accepted or not, I
> believe it worthwhile for discussion, isn't it?
You don't seem to be grasping that Javascript is a very functional language.
Bash is not. Did you read my previous post? The problem is not so simple as
"bash lacks support for closures". The shell's notion of what a function is is
fundamentally incompatable with the notions that make closures useful in other
languages.
All you're talking about here is "partial function application" which this
isn't really a direct analogue of because you still can't access nonlocal
positional parameters (short of BASH_ARG{V,C} cheating, which you would need
to know to enable in advance). That's a very limited use case - The vast
majority of what closures are really useful for (implementing thunks,
continuations, currying, various abstractions for code reuse) still don't jive
with this.
Here's a Korn shell "closure" of sorts. Notice illustrating the difference from
Bash requires two different kinds of function definitions:
$ ( f() { typeset x=5; function g { echo "$x"; }; }; f; g; )
5
And this alone still doesn't allow you to do very much which you can't already
do in Bash due to the way scoping works - using the context at the time the
function is called.
--
Dan Douglas
signature.asc
Description: This is a digitally signed message part.
- Re: [Help-bash] Closure concept in bash, (continued)
- Re: [Help-bash] Closure concept in bash, Greg Wooledge, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Chet Ramey, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Peng Yu, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Greg Wooledge, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Peng Yu, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Bob Proulx, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Peng Yu, 2012/01/31
- Re: [Help-bash] Closure concept in bash,
Dan Douglas <=
- Re: [Help-bash] Closure concept in bash, Chet Ramey, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Ken Irving, 2012/01/31
- Re: [Help-bash] Closure concept in bash, Chet Ramey, 2012/01/31
Re: [Help-bash] Closure concept in bash, Dan Douglas, 2012/01/28
Re: [Help-bash] Closure concept in bash, Dan Douglas, 2012/01/31