This one took a while, whew.

load'regex'
Defaults=:', ', ': _',~ ': _, 'joinstring <;._2 [ 0 : 0
children
cats
perfumes
samoyeds
pomeranians
akitas
vizslas
goldfish
trees
cars
)

NB. part 1
parse=: deb L:0@:(':'&cut each)@:(','&cut)
Input0=: ('^Sue \d+: ';'') rxrplc fread'16.txt'
Input=: deb L:0 parse@:(Defaults,~]);._2 Input0 NB. add _ defaults to each line Ticker=: /:~ parse s=:'children:3, cats:7, samoyeds:2, pomeranians:3, akitas:0, vizslas:0, goldfish:5, trees:3, cars:2, perfumes:1' BoxMatrix=: /:~@({.each {./. ])"1 Input NB. real values will always be first box of their group
Matrix=:".every {: every BoxMatrix
TickerVec=: ". every {: every Ticker
smoutput >: (i.>./) Matrix (+/ .=) TickerVec

NB. part 2
NB. dapply from http://code.jsoftware.com/wiki/Essays/Distributed_Apply#Dyadic_Case
dapply=: 1 : 0
  (i.#y) u@]@.["0 _1 y
:
  r=. ,:x [email protected]&{. y
  for_i. i.&.<:#y do. r=. r,(i{x) [email protected] i{y end.
)
ad=: 1 : 'u *. -.@(_ = [)'
smoutput >: (i.>./) Matrix +/@:(=`=`(>ad)`=`(<ad)`=`(<ad)`=`(>ad)`= dapply)"1 TickerVec
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to