|
From: | Christian Robert |
Subject: | Re: [Bug-apl] ⎕FIO[49] |
Date: | Thu, 19 Jan 2017 17:10:24 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
Juergen, Just a note, your example as of yesterday to disclose the result of ⎕FIO[49] to obtain a matrix no longer work as is. I had to add a tack (⊢) between ⎕FIO[49] and the "⊃" as in LoadSudoku2 below. LoadSudoku2←{{⊂9 9 ⍴ ⍵}⍤1 ⊃ ⊢⎕FIO[49] ⍵} LoadSudoku3←{{⊂9 9 ⍴ ⍵} ⎕FIO[49] ⍵} without the tack it would run disclose on each line which is a noop. time "a←LoadSudoku2 'Sudoku_dump.txt'" 3.370101159 time "a←LoadSudoku3 'Sudoku_dump.txt'" 2.977278584 time "a←LoadSudoku2 'Sudoku_dump.txt'" 3.142475014 time "a←LoadSudoku3 'Sudoku_dump.txt'" 2.966579181 the LoadSudoku3 run faster than the LoadSudoku2 ⍴a 219025 ⊃a[1 2 3] 000000000 000000000 000000000 000000008 000000009 000000009 560230400 400008120 580030100 100803000 001030000 001640008 090060000 085009760 000300005 000025010 090040200 602005041 300500706 800070006 003700000 076002000 000021050 920000076 005090021 006000010 040809000 Display ¨ ⊃a[1 2 3] ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ╔═══╤═══╤═══╦═══╤═══╤═══╦═══╤═══╤═══╗ ║ │ │ ║ │ │ ║ │ │ ║ ║ │ │ ║ │ │ ║ │ │ ║ ║ │ │ ║ │ │ ║ │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ ║ │ │ ║ │ │ 8 ║ ║ │ │ ║ │ │ ║ │ │ 9 ║ ║ │ │ ║ │ │ ║ │ │ 9 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ 5 │ 6 │ ║ 2 │ 3 │ ║ 4 │ │ ║ ║ 4 │ │ ║ │ │ 8 ║ 1 │ 2 │ ║ ║ 5 │ 8 │ ║ │ 3 │ ║ 1 │ │ ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ 1 │ │ ║ 8 │ │ 3 ║ │ │ ║ ║ │ │ 1 ║ │ 3 │ ║ │ │ ║ ║ │ │ 1 ║ 6 │ 4 │ ║ │ │ 8 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 9 │ ║ │ 6 │ ║ │ │ ║ ║ │ 8 │ 5 ║ │ │ 9 ║ 7 │ 6 │ ║ ║ │ │ ║ 3 │ │ ║ │ │ 5 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ ║ │ 2 │ 5 ║ │ 1 │ ║ ║ │ 9 │ ║ │ 4 │ ║ 2 │ │ ║ ║ 6 │ │ 2 ║ │ │ 5 ║ │ 4 │ 1 ║ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ╠═══╪═══╪═══╬═══╪═══╪═══╬═══╪═══╪═══╣ ║ 3 │ │ ║ 5 │ │ ║ 7 │ │ 6 ║ ║ 8 │ │ ║ │ 7 │ ║ │ │ 6 ║ ║ │ │ 3 ║ 7 │ │ ║ │ │ ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ 7 │ 6 ║ │ │ 2 ║ │ │ ║ ║ │ │ ║ │ 2 │ 1 ║ │ 5 │ ║ ║ 9 │ 2 │ ║ │ │ ║ │ 7 │ 6 ║ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ╟───┼───┼───╫───┼───┼───╫───┼───┼───╢ ║ │ │ 5 ║ │ 9 │ ║ │ 2 │ 1 ║ ║ │ │ 6 ║ │ │ ║ │ 1 │ ║ ║ │ 4 │ ║ 8 │ │ 9 ║ │ │ ║ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ ╚═══╧═══╧═══╩═══╧═══╧═══╩═══╧═══╧═══╝ I love ⎕FIO[49] ;-) Xtian. On 2017-01-19 09:17, Juergen Sauermann wrote:
Hi, I have added *⎕FIO[49]* to GNU APL in *SVN 858*. *Z←⎕FIO[49] 'filename'* reads the file named *filename* line by line and stores every line of the file in one enclosed item of result vector*Z* , for example (file *x* has 3 lines): * **⍪**⊃ ⎕FIO[49] 'x' Line 1 Line 2 Line 3 * The end of line character (LF = '\n') character possibly a trailing CR = '\r' character is being removed in the process. *⎕FIO[49]* accepts an optional left function argument *F* which is a monadic conversion function. The conversion functions F is called with every line read and the result of the function is then stored in Z. for example: * ⍪⊃ {'x: ', ⍵} ⎕FIO[49] 'x'** **x: Line 1** **x: Line 2** **x: Line 3* /// Jürgen
[Prev in Thread] | Current Thread | [Next in Thread] |