Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Functional > Re: a golden ol...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 11 of 40 Topic 2778 of 2841
Post > Topic >>

Re: a golden oldie challenge: Eliza

by William James <w_a_x_man@[EMAIL PROTECTED] > Feb 22, 2008 at 07:19 PM

On Feb 22, 7:12 pm, Mark Tarver <dr.mtar...@[EMAIL PROTECTED]
> wrote:

> First I've seen Ruby used.  Don't understand a damn thing of
> course :),
> but 55 LOC puts it top.
>
> Mark

Symbols begin with ":".

Lists (arrays to Rubyists) are enclosed in [], but they
can be omitted sometimes, e.g.:
  a = 22,33,44

"<<" appends to a list:
  [6,7,8] << 9
      ==>[6, 7, 8, 9]

The index of the first element in a list is 0:
  [6,7,8][0]
      ==>6

The array method ".join" is almost self-explanatory:
  ['tip', '-', 'top'].join
      ==>"tip-top"
  ['tip', '-', 'top'].join( '***' )
      ==>"tip***-***top"

Anonymous code blocks are enclosed in {..} or do ... end.

The parameters of the code block are enclosed in |...|.
In this example, the parameter is "n":
  [6,7,8].map{|n|  n * 2 }
      ==>[12, 14, 16]

In a different context {...} indicates a hash (associative
array):
  h = {'foo',44,  'bar',55, 'boo',66}
      ==>{"boo"=>66, "foo"=>44, "bar"=>55}
It's clearer but more tedious to separate key-value pairs
with "=>":
  h = {'foo'=>44,  'bar'=>55, 'boo'=>66}
      ==>{"boo"=>66, "foo"=>44, "bar"=>55}

Let's consider two lines:
  tmp = s.scan(/you are|you're|\w+|\W+/).map{|s|
    h[s] or h.invert[s] or s }

".scan" operates on the string s, producing a list of
substrings that are matched by the regular expression
"/you are|you're|\w+|\W+/".  The pipe symbol "|" functions
as OR; "\w" matches a word character; "\W" matches a
non-word character.  Example:
  "you are willy-nilly, yes?".scan( /you are|you're|\w+|\W+/ )
      ==>["you are", " ", "willy", "-", "nilly", ", ", "yes", "?"]
Next, ".map" attempts to perform substitutions using the
key-value pairs of the hash "h".  It makes good use of the
method ".invert", which swaps each key with its value:
  {'foo',22, 'bar',33}
      ==>{"foo"=>22, "bar"=>33}
  {'foo',22, 'bar',33}.invert
      ==>{33=>"bar", 22=>"foo"}




 40 Posts in Topic:
a golden oldie challenge: Eliza
Mark Tarver <dr.mtarve  2008-02-22 03:49:44 
Re: a golden oldie challenge: Eliza
Mark Tarver <dr.mtarve  2008-02-22 03:59:02 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-22 14:09:58 
Re: a golden oldie challenge: Eliza
"John Thingstad"  2008-02-23 13:00:30 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-23 13:21:00 
Re: a golden oldie challenge: Eliza
Ken Tilton <kennytilto  2008-02-23 15:24:42 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-23 16:42:31 
Re: a golden oldie challenge: Eliza
Ken Tilton <kennytilto  2008-02-23 20:55:56 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 07:44:32 
Re: a golden oldie challenge: Eliza
Mark Tarver <dr.mtarve  2008-02-22 17:12:49 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-22 19:19:31 
Re: a golden oldie challenge: Eliza
Szabolcs <szhorvat@[EM  2008-02-23 14:12:17 
Re: a golden oldie challenge: Eliza
Szabolcs <szhorvat@[EM  2008-02-23 14:26:03 
Re: a golden oldie challenge: Eliza
Ben Bacarisse <ben.use  2008-02-24 00:01:08 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-23 20:14:36 
Re: a golden oldie challenge: Eliza
Szabolcs <szhorvat@[EM  2008-02-24 01:51:00 
Re: a golden oldie challenge: Eliza
Mark Tarver <dr.mtarve  2008-02-24 03:59:56 
Re: a golden oldie challenge: Eliza
Rainer Joswig <joswig@  2008-02-24 18:29:12 
Re: a golden oldie challenge: Eliza
Neelakantan Krishnaswami   2008-02-24 18:03:20 
Re: a golden oldie challenge: Eliza
Mark Tarver <dr.mtarve  2008-02-24 04:06:09 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 05:30:38 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 08:59:51 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 06:22:31 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 09:37:17 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 06:42:47 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 10:56:28 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 06:57:22 
Re: a golden oldie challenge: Eliza
Dimitre Liotev <notmy@  2008-02-24 10:00:29 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 10:49:22 
Re: a golden oldie challenge: Eliza
Arved Sandstrom <asand  2008-02-24 17:28:25 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-24 13:03:11 
Re: a golden oldie challenge: Eliza
Ken Tilton <kennytilto  2008-02-24 13:59:55 
Re: a golden oldie challenge: Eliza
Dimitre Liotev <notmy@  2008-02-24 11:18:27 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 12:36:12 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 13:11:47 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 13:26:38 
Re: a golden oldie challenge: Eliza
Arved Sandstrom <asand  2008-02-25 17:16:43 
Re: a golden oldie challenge: Eliza
William James <w_a_x_m  2008-02-24 13:35:20 
Re: a golden oldie challenge: Eliza
Brian Adkins <lojicdot  2008-02-25 09:52:13 
Re: a golden oldie challenge: Eliza
"Stevan Apter"   2008-02-25 16:58:13 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri May 16 5:14:11 CDT 2008.