Forums
New posts
Search forums
Members
Current visitors
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Forums
Archive
Archive
Perl
Perl Misc
to RG - Lisp lunacy and Perl psychosis
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
[QUOTE="ccc31807, post: 4872003"] On February 27, in a thread on c.l.l, RG had this to say about Perl: </quote> I wanted to reply but also wanted to take some time to think about my reply. Yesterday, I wrote a typical data munging script using Perl. I was using two hashes, %sec and %fac, and needed to populate the 'location' value in %fac with the value in %sec depending on the state of the 'xlist' key in %sec. The code looks horrible, but I think any journeyman programmer can follow the logic even if he doesn't understand Perl or the data structures. This is the code, and I might add that it's working code: <code> if ($sec{$k}{'xlist'} !~ /\d/) { $fac{$sec{$k}{'id1'}}{'location'} = $sec{$k}{'site'}; } elsif ($sec{$k}{'xlist'} eq $sec{$k}{'crs_id'}) { $fac{$sec{$k}{'id1'}}{'location'} = $sec{$k}{'site'}; } else { $fac{$sec{$k}{'id1'}}{'location'} = $sec{$sec{$k}{'xlist'}} {'site'}; } </code> In David Lamkins' book 'Successful Common Lisp' in chapter 4, we find the following. This also looks horrible, and I don't think a journeyman programmer can follow this logic unless he knew something about Lisp. <quote> The following piece of code illustrates how you can use the same name for different purposes. Take a minute to read this, and see how many separate uses you can count for the name FUNNY. (defun funny (funny) "funny..." (if (zerop funny) :funny (list (cons funny (let ((funny funny)) (setq funny (1- funny)) (funny funny))) funny))) Here are the five roles played by this one name: 1. function name 2. function argument 3. a word in the documentation string 4. a constant in the keyword package 5. a new lexical variable </quote> Perl uses sigils ($, !, %, &) to signify a token's usage. Lisp uses positional notation for the same thing. It's not that one's bad and one's not -- it's just cosmetic. It's as if one language is wearing a pinstripe suit with wing tips and the other is wearing a blue blazer with penny loafers. Underneath, the logic is the same in both languages, and once you get past the peculiarities of the language you use the same logic. (I'm not arguing that the power of the languages is the same, in several respects Lisp is more powerful than Perl, but that the process of thinking through a problem is the same.) Here's the point: to call one language horrible and an abomination because you don't understand it, and ignoring the horribleness and the abominable in another language because you do understand it, doesn't make any sense. The cover doesn't make the book the clothes don't make the man, and the appearance doesn't make the language. Instead, a language should be judged on the work that it permits, and in this respect (based on surveys like TIOBE and advertised positions) Perl seems to be a lot more useful (and perhaps a lot less horrible) than CL. One language isn't better or worse that the other, they are just different, and the expression of RG's opinion is simply a value judgment, which others may or may not share. CC. [/QUOTE]
Verification
Post reply
Forums
Archive
Archive
Perl
Perl Misc
to RG - Lisp lunacy and Perl psychosis
Top