Python's "only one way to do it" philosophy isn't good?

Cousin Stanley cousinstanley at hotmail.com
Sat Jun 9 06:42:48 EDT 2007


> ....
> In scheme, I believe you just have recursion. 
> ....

Cousin TJR ....

  I'm a total scheme rookie starting only about 3 days ago
  and one of the mechanisms I went looking for was a technique
  for iteration .... 

  Found in the scheme docs about iteration supplied
  via the  reduce  package ....

    "Iterate and reduce are extensions of named-let 
     for writing loops that walk down one or more sequences
     such as the elements of a list or vector, the characters
     read from a port, or arithmetic series .... "

  The following scheme session illustrates a trivial example ....

  > , open reduce
  >
  > ( define ( list_loop this_list )
    ( iterate loop
    ( ( list* this_item this_list ) )               ; iterate expression
    ( ( new_list '( ) ) )                           ; state   expression
      ( loop ( cons ( * 2 this_item ) new_list ) )  ; body    expression
      ( reverse new_list ) ) )                      ; final   expression
  ; no values returned
  > 
  > ( define L '( 1 2 3 4 5 ) )
  ; no values returned
  >
  ( define result_i ( list_loop L ) )
  ; no values returned
  >
  > result_i
  '(2 4 6 8 10)
  >

  However, just as in Python the  map  function
  might be both easier to code and more readable
  in many cases ....

  > ( define ( x2 n ) ( * 2 n ) )
  ; no values returned
  >
  > ( define result_m ( map x2 L ) )
  ; no values returned
  >
  > result_m
  '(2 4 6 8 10)

  Note .... 

    No  lambdas  in my scheme code either .... ;-)
 

-- 
Stanley C. Kitching
Human Being
Phoenix, Arizona


----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----



More information about the Python-list mailing list