![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Uh, wha? No recursion?
Cute. Now try doing that while actually processing some data. Oh, wait,
you can't - no local variables. :-P
Of course, BASIC is Turing-complete. You can implement variable scoping
manually yourself. But that's not the same as the language having real
support for recursion...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> It defies belief that anybody could disagree
Certainly the primitive versions of the language were pretty primitive. But
then, people were doing primitive things. How much of a namespace do you
need when your computer only has 4K of RAM?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> Come to think about it, if you're going to judge "the best language" as
> being "the most widely used language",
I wasn't conflating those two. You're changing "useful" to "best". You said
BASIC was useless. I pointed out it was more used then Haskell. Now you're
saying "that doesn't make it the best", which wasn't my contention. Merely
that you don't have to be the best to be useful.
>>> Excel macros, makefiles and shell scripts are all strictly more
>>> powerful than BASIC in at least one objective way: they all support
>>> recursion. BASIC does not.
>>
>> Makefiles don't support recursion except by invoking themselves
>> externally.
>
> What, a make target can't invoke itself? I thought it could.
What do you mean by "invoke" here?
>> It's only relatively recently that shell script have
>> supported recursion in the language itself.
>
> Well... if you say so. I'm only commenting on the state of these
> languages today (because that's all I know about).
Yes. And I'm suggesting that before you argue about "dead" languages like
pre-VB BASIC, you learn some of the history. :-)
>> Plus, when you're trying to solve a problem like building software,
>> recursion is a point *against* your solution.
>
> I disagree.
Why? What is the good use for recursion there? If your goal is to invoke
various compilers etc, where does recursion fundamentally aid in the process?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> support for recursion...
The only support for recursion that you *need* is to save the PC.
You realize that many of the languages designed while BASIC was being
designed didn't have recursion either, because the assembly languages they
ran on didn't have recursion?
--
Darren New, San Diego CA, USA (PST)
Serving Suggestion:
"Don't serve this any more. It's awful."
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 06 Oct 2010 16:33:52 +0100, Invisible wrote:
>> Uh, wha? No recursion?
>
> Cute. Now try doing that while actually processing some data. Oh, wait,
> you can't - no local variables. :-P
You can, local variables aren't required, you just have to code around
that limitation.
You can certainly cause stack overflows (since that's how RETURN gets
back to the entry point).
> Of course, BASIC is Turing-complete. You can implement variable scoping
> manually yourself. But that's not the same as the language having real
> support for recursion...
You said "no recursion". I showed there was some. Give up now. ;-)
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On Wed, 06 Oct 2010 15:17:30 -0400, Jim Henderson wrote:
> On Wed, 06 Oct 2010 16:33:52 +0100, Invisible wrote:
>
>>> Uh, wha? No recursion?
>>
>> Cute. Now try doing that while actually processing some data. Oh, wait,
>> you can't - no local variables. :-P
>
> You can, local variables aren't required, you just have to code around
> that limitation.
>
> You can certainly cause stack overflows (since that's how RETURN gets
> back to the entry point).
>
>> Of course, BASIC is Turing-complete. You can implement variable scoping
>> manually yourself. But that's not the same as the language having real
>> support for recursion...
>
> You said "no recursion". I showed there was some. Give up now. ;-)
http://www.atarimagazines.com/compute/issue26/130_1_RECURSIVE_BASIC_SUBROUTINES.php
Just in case you needed further evidence of recursive capabilities.
Jim
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> It defies belief that anybody could disagree
>
> Certainly the primitive versions of the language were pretty primitive.
> But then, people were doing primitive things. How much of a namespace do
> you need when your computer only has 4K of RAM?
Also, even after machines got faster and bigger, there were still benefits
of a small primitive language. I remember when Acorn released the first CPU
with on-board cache, suddenly the entire BASIC interpreter could fit in the
cache - which meant BASIC became a very fast (for an interpreted language).
I assume more complex interpreted languages couldn't manage this.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 06/10/2010 05:33 PM, Darren New wrote:
> But then, people were doing primitive things. How much of a namespace do
> you need when your computer only has 4K of RAM?
I just received an email. It's completely empty; all the content was in
the subject line. And Outlook reports that it's 4KB in size. Makes you
wonder what on Earth you can actually do with a 4KB machine...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Cute. Now try doing that while actually processing some data. Oh, wait,
> you can't - no local variables. :-P
Dunno about other versions of BASIC, but in BBC BASIC I'm pretty sure you
had the "LOCAL" keyword to do just that.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 07/10/2010 09:21 AM, scott wrote:
>> Cute. Now try doing that while actually processing some data. Oh,
>> wait, you can't - no local variables. :-P
>
> Dunno about other versions of BASIC, but in BBC BASIC I'm pretty sure
> you had the "LOCAL" keyword to do just that.
If that's actually true, that would make it usefully more sophisticated
than, say, Spectrum or C64 BASIC.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |