Thanks, Ric, that's just the sort of thing I was hoping to elicit:
which addons to use and how to use them.

Ian

On Sun, May 9, 2010 at 3:04 AM, Sherlock, Ric <[email protected]> wrote:
>> From: Ian Clark
>>
>> Here's my take on a currency conversion table from Björn's URL.
>>
> ...
>>
>> Who can see how to improve on my code?
>
> Here is a different approach trying to reuse existing code from the base 
> library or JAL where possible:
>
> NB.================================================================
> NB. Script
>
> require 'xml/sax/x2j web/gethttp tables/dsv pack'
>
> NB. Source of exchange rate data...
> URL=: 'http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html'
>
> x2jclass 'forex'
>
> 'Items' x2jDefn
>  /   :=  table : table=: ,:'Code';'Currency';'Value'
>  tr  :=  table=: table, empty^:(0 = #) row  : row=: ''
>  td  :=  row=: row, (''"_)^:( ('aa';'ab') -.@:e.~ <@(atr bind 'headers')) <y
>  td/span :=  row=: row, (''"_)^:('rate' -...@-: atr bind 'class') <y
> )
> NB.=================================================================
>
>
> NB.=================================================================
> NB. Example session
>
>   CurrencyTable=: makenum process_forex_ gethttp URL
>   'CHF' pget CurrencyTable
> 1.4144
>   ('GBP';'CHF') psel CurrencyTable
> +---+---------------+-------+
> |GBP|Pound sterling |0.86805|
> +---+---------------+-------+
> |CHF|Swiss franc    |1.4144 |
> +---+---------------+-------+
> NB.=================================================================
>
>
> NB.=================================================================
> NB. The following is the explicit equivalent of the tacit code in
> NB. script above
>
> x2jclass 'forex'
>
> '/' x2jElm (3 : 0)
>  table
> :
>  table=: ,:'Code';'Currency';'Value'
> )
>
> 'tr' x2jElm (3 : 0)
>  if. #row do.
>    table=: table,row
>  end.
> :
>  row=: ''
> )
>
> 'td' x2jChar (3 : 0)
>  if. (<atr 'headers') e. 'aa';'ab' do.
>    row=: row,<y
>  end.
> )
>
> 'td/span' x2jChar (3 : 0)
>  if. 'rate' -: atr 'class' do.
>    row=: row,<y
>  end.
> )
> NB.=================================================================
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to