Thanks Henry! I am embarrassed. - Bo
>________________________________ > Fra: Henry Rich <henryhr...@nc.rr.com> >Til: programm...@jsoftware.com >Sendt: 11:24 onsdag den 28. november 2012 >Emne: Re: [Jprogramming] Translating BASIC into J > >124222 SECUNDUM > >Henry Rich >Inquisitor General > >On 11/28/2012 2:49 AM, Bo Jacoby wrote: >> Thank you very much, June and Raul! >> The blank lines in the file should not be there. (They were invisible until >> the mail was sent.) >> A line number ends when a nondigit character is encountered, and line >> numbers may be padded with zeroes to the right, so ' AMEN' and '0 AMEN' >> behaves the same way. >> I will now study June's solution. >> - Bo >> >> >> >> >>> ________________________________ >>> Fra: June Kim (김창준) <junea...@gmail.com> >>> Til: programm...@jsoftware.com >>> Sendt: 6:43 onsdag den 28. november 2012 >>> Emne: Re: [Jprogramming] Translating BASIC into J >>> >>> Hi Bo, >>> >>> Firstly on the database file: >>> >>> I suppose there is no blank line in between the lines of the file. >>> I suppose AMEN at the end was actually, 0 AMEN, instead. >>> >>> Now a quick and dirty version -- notice that this doesn't fully implement >>> the basic code exactly, but you'll get the key idea. >>> >>> 'key val'=: <"1 |: >({. , ([,' ',])&.>/@:}.)@:(' '&cut) each LF cut >>> 1!:1<jpath'~user/temp/CREDO' NB. I put the CREDO file here >>> search=:*./@(+./)@( [ (= , '0'&=@,: ) ({.~ #)~ ) >>> val#~key search every < '13522' NB. query for 13522 >>> >>> >>> June >>> >>> On Tue, Nov 27, 2012 at 3:31 PM, Bo Jacoby <bojac...@yahoo.dk> wrote: >>> >>>> Dear J'ers. >>>> >>>> At the Norddata conference in Göteborg in the summer 1989 I gave a lecture >>>> (in Danish) on Ultraflexible Database Structure and Artificial Catholicism. >>>> >>>> >>>> It contained this 8-liner in BASIC. >>>> >>>> 1 INPUT;C$: IF C$="" THEN END >>>> 2 OPEN "CREDO" FOR INPUT AS 1: PRINT":"; >>>> 3 IF EOF(1) THEN CLOSE: PRINT: GOTO 1 >>>> 4 LINE INPUT#1,A$: B$=C$ >>>> 5 IF A$=""THEN A%=-1 ELSE A%=ASC(A$)-48: A$=MID$(A$,2) >>>> 6 IF B$=""THEN B%=-1 ELSE B%=ASC(B$)-48: B$=MID$(B$,2) >>>> 7 IF A%<0 THEN PRINT" ";A$;: GOTO 3 >>>> 8 IF A%=0 OR B%=0 OR A%=B% THEN 5 ELSE 3 >>>> >>>> I have not yet been able to translate this program into J, mainly (I >>>> think) because I have no experience in reading textfiles from J. I request >>>> your assistance! The line numbers in the file must be separated from the >>>> rest of the lines. The line numbers may be padded to the right with zeroes. >>>> >>>> >>>> The program is a database browser. The question put to the program is a >>>> number, and the answer from the program consists of the lines in the >>>> database having numbers compatible to that of the question. Like this: >>>> >>>> 1: CREDO AMEN >>>> 2: CONFITEOR AMEN >>>> 3: EXPECTO AMEN >>>> 0: CREDO CONFITEOR ET EXPECTO AMEN >>>> >>>> The digit zero is wild card character. A zero in the question indicate >>>> that the answer has many words, and zero in a word in the database indicate >>>> that this word answers many questions. So "AMEN" is included in all >>>> answers. Like this: >>>> >>>> 11: CREDO IN DEUM AMEN >>>> 12: CREDO IN JESUM AMEN >>>> 13: CREDO IN SPIRITUM AMEN >>>> 14: CREDO ECCLESIAM AMEN >>>> 15: CREDO AMEN >>>> 10: CREDO IN DEUM ET IN JESUM ET IN SPIRITUM ET ECCLESIAM AMEN >>>> 21: CONFITEOR BAPTISMA AMEN >>>> 22: CONFITEOR AMEN >>>> 31: EXPECTO RESURRECTIONEM AMEN >>>> 32: EXPECTO VITAM AMEN >>>> 33: EXPECTO AMEN >>>> 30: EXPECTO RESURRECTIONEM ET VITAM AMEN >>>> 01: CREDO IN DEUM CONFITEOR BAPTISMA ET EXPECTO RESURRECTIONEM AMEN >>>> 13500: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL ADORATUR ET >>>> GLORIFICATUR AMEN >>>> >>>> 13510: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL ADORATUR AMEN >>>> 13520: CREDO IN SPIRITUM QUI CUM PATRE ET FILIO SIMUL GLORIFICATUR AMEN >>>> 13501: CREDO IN SPIRITUM QUI CUM PATRE ADORATUR ET GLORIFICATUR AMEN >>>> 13502: CREDO IN SPIRITUM QUI CUM FILIO ADORATUR ET GLORIFICATUR AMEN >>>> 13511: CREDO IN SPIRITUM QUI CUM PATRE ADORATUR AMEN >>>> 13512: CREDO IN SPIRITUM QUI CUM FILIO ADORATUR AMEN >>>> 13521: CREDO IN SPIRITUM QUI CUM PATRE GLORIFICATUR AMEN >>>> 13522: CREDO IN SPIRITUM QUI CUM FILIO GLORIFICATUR AMEN >>>> >>>> The database is this. >>>> 1 CREDO >>>> 11 IN >>>> 111 UNUM >>>> 11 DEUM >>>> 112 PATREM >>>> 1121 OMNIPOTENTEM >>>> 113 FACTOREM >>>> 1131 CÆLI >>>> 1139 ET >>>> 1132 TERRÆ >>>> 11331 VISIBILIUM >>>> 1133 OMNIUM >>>> 11339 ET >>>> 11332 INVISIBILIUM >>>> 19 ET >>>> 12 IN >>>> 1211 UNUM >>>> 1211 DOMINUM >>>> 12 JESUM >>>> 1211 CHRISTUM >>>> 1212 FILIUM >>>> 1212 DEI >>>> 12121 UNIGENITUM >>>> 1219 ET >>>> 1213 EX >>>> 1213 PATRE >>>> 1213 NATUM >>>> 12131 ANTE >>>> 121311 OMNIA >>>> 12131 SÆCULA >>>> 1221 DEUM >>>> 12211 DE >>>> 12211 DEO >>>> 1222 LUMEN >>>> 12221 DE >>>> 12221 LUMINE >>>> 1223 DEUM >>>> 12231 VERUM >>>> 12232 DE >>>> 12232 DEO >>>> 122321 VERO >>>> 1231 GENITUM >>>> 12311 NON >>>> 12311 FACTUM >>>> 1232 CONSUBSTANTIALEM >>>> 1232 PATRI >>>> 12321 PER >>>> 12321 QUEM >>>> 12321 OMNIA >>>> 12321 FACTA >>>> 12321 SUNT >>>> 124 QUI >>>> 124101 PROPTER >>>> 124101 NOS >>>> 12410101 HOMINES >>>> 124109 ET >>>> 124102 PROPTER >>>> 12410201 NOSTRAM >>>> 124102 SALUTEM >>>> 12411 DESCENDIT >>>> 1241101 DE >>>> 1241101 CÆLIS >>>> 12419 ET >>>> 12412 INCARNATUS >>>> 12412 EST >>>> 1241201 DE >>>> 1241201 SPIRITU >>>> 124120101 SANCTO >>>> 1241202 EX >>>> 1241202 MARIA >>>> 124120201 VIRGINE >>>> 12419 ET >>>> 1241301 HOMO >>>> 12413 FACTUS >>>> >>>> 12413 EST >>>> 124211 CRUCIFIXUS >>>> 1242101 ETIAM >>>> 1242101 PRO >>>> 1242101 NOBIS >>>> 1242102 SUB >>>> 1242102 PONTIO >>>> 1242102 PILATO >>>> 124212 PASSUS >>>> 124219 ET >>>> 124213 SEPULTUS >>>> 12421 EST >>>> 12429 ET >>>> 12422 RESURREXIT >>>> 124221 TERTIA >>>> 124221 DIE >>>> 124222 SECUMDUM >>>> 124222 SCRIPTURAS >>>> 12429 ET >>>> 12423 ASCENDIT >>>> 124231 IN >>>> 124231 CÆLUM >>>> 12424 SEDET >>>> 124241 AD >>>> 124241 DEXTERAM >>>> 124241 PATRIS >>>> 12429 ET >>>> 124251 ITERUM >>>> 12425 VENTURUS >>>> >>>> 12425 EST >>>> 124252 CUM >>>> 124252 GLORIA >>>> 124253 JUDICARE >>>> 1242531 VIVOS >>>> 1242539 ET >>>> 1242532 MORTUOS >>>> 125 CUJUS >>>> 125 REGNI >>>> 125 NON >>>> 125 ERIT >>>> 125 FINIS >>>> 19 ET >>>> 13 IN >>>> 13 SPIRITUM >>>> 131 SANCTUM >>>> 132 DOMINUM >>>> 139 ET >>>> 133 VIVIFICANTEM >>>> 134 QUI >>>> 134 EX >>>> 1341 PATRE >>>> 1342 FILIO >>>> 1349 QUE >>>> 134 PROCEDIT >>>> 135 QUI >>>> 135 CUM >>>> 13501 PATRE >>>> 13509 ET >>>> 13502 FILIO >>>> 13509 SIMUL >>>> 1351 ADORATUR >>>> 1359 ET >>>> 1352 GLORIFICATUR >>>> 136 QUI >>>> 136 LOCUTUS EST >>>> 1361 PER >>>> 1361 PROPHETAS >>>> 19 ET >>>> 141 UNAM >>>> 142 SANCTAM >>>> 143 CATHOLICAM >>>> 149 ET >>>> 144 APOSTOLICAM >>>> 14 ECCLESIAM >>>> 2 CONFITEOR >>>> 211 UNUM >>>> 21 BAPTISMA >>>> 212 IN >>>> 212 REMISSIONEM >>>> 2121 PECCATORUM >>>> 9 ET >>>> 3 EXPECTO >>>> 31 RESURRECTIONEM >>>> 311 MORTUORUM >>>> 39 ET >>>> 32 VITAM >>>> 3211 VENTURI >>>> 321 SÆCULI >>>> AMEN >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm >>>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >>> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> >---------------------------------------------------------------------- >For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm