I used to reread the dictionary and work on the labs. Have not done it since J6.
Now that wd is working again I may start again. A lot to reread now. - Björn Helgason gsm:6985532 skype:gosiminn On 2.3.2014 18:18, "John Baker" <[email protected]> wrote: > I had forgotten about this option too. Time to reread the dictionaries. > > Sent from my iPhone > > > On Mar 2, 2014, at 12:06 PM, Björn Helgason <[email protected]> wrote: > > > > !!! > > > > Nice!!! > > > > I did not know this. > > > > At least forgot if I did know. > > > > Very useful. > > > > Thanks! > > > > - > > Björn Helgason > > gsm:6985532 > > skype:gosiminn > >> On 2.3.2014 12:35, "R.E. Boss" <[email protected]> wrote: > >> > >> The obvious being > >> > >> 6!:0 'YYYY-MM-DDThh:mm:ss' > >> 2014-03-02T13:32:57 > >> > >> ? > >> > >> > >> R.E. Boss > >> > >> (Add your info to http://www.jsoftware.com/jwiki/Community/Demographics) > >> > >> > >>> -----Original Message----- > >>> From: [email protected] [mailto:programming- > >>> [email protected]] On Behalf Of Raul Miller > >>> Sent: zondag 2 maart 2014 10:05 > >>> To: Programming forum > >>> Subject: [Jprogramming] iso time format with 8!:2 > >>> > >>> Given > >>> 6!:0'' > >>> 2014 3 2 3 30 46.034 > >>> > >>> I'd like to generate the string > >>> 2014-03-02T03:30:46 > >>> > >>> And, to make things just a bit strange, I'd like to use 8!:2 instead of > >> the > >>> obvious. > >>> > >>> Just to be clear, though, here's my idea of "obvious": > >>> > >>> }:;(1,5#3)<@}."_1'--T:: ',.~":,.10000+<.6!:0'' > >>> > >>> By obvious, I do not mean that I instantly thought of that expression, > I > >>> had to think a few minutes, and I had a few errors to fix in my initial > >>> concept. But by "obvious" I mean that I am using the basic J > vocabulary. > >>> > >>> Picking up the vocabulary isn't instant, though, and I'm using 14 > >> different > >>> words from the vocabulary (plus some nouns and a pair of parenthesis). > So > >>> if we expect a person to pick up five words from the vocabulary a week, > >>> that's at least three weeks of training before a person could be > >> reasonably > >>> comfortable composing a sentence like that. > >>> > >>> Now... the 8!:0, 8!:1 and 8!:2 verbs do have their own tiny vocabulary > as > >>> represented by their format strings. But these are examples of > extremely > >>> specialized words - not very powerful at all, which means they require > >> less > >>> study than J as a whole, and (within their limited capabilities) will > >> tend > >>> to be faster that a more general approach. > >>> > >>> Formatting is not likely a speed bottleneck for iso date formatting - > >> it's > >>> more when you have a big sheet of numbers and a weak computer that you > >>> might care about formatting time. But it's still an interesting > exercise. > >>> (Or a boring one, if you are not interested in formatting text.): > >>> > >>> So... here's how I approached this exercise: > >>> > >>> <.2014 3 2 3 30 46.034 > >>> 2014 3 2 3 30 46 > >>> > >>> Let's just ignore the decimal part, for now. > >>> > >>> '4' 8!:2 <.2014 3 2 3 30 46.034 > >>> 2014.00003.00002.00003.000030.000046.0000 > >>> > >>> Looks like a number by itself is decimal places after the decimal > point. > >>> > >>> '4.' 8!:2 <.2014 3 2 3 30 46.034 > >>> 2014 3 2 3 30 46 > >>> > >>> But a decimal point in the format specifier fixes that. > >>> '4.,2.,2.,2.,2.,2.' 8!:2 <.2014 3 2 3 30 46.034 > >>> 2014 3 2 33046 > >>> > >>> I need commas to separate the format specifiers for independent > columns. > >>> > >>> '4.,r<0>2.,2.,2.,2.,2.' 8!:2 <.2014 3 2 3 30 46.034 > >>> 201403 2 33046 > >>> > >>> The r option gives "fill" or, in this context "leading zeros", but each > >>> format needs this spec. > >>> > >>> '4.,r<0>2.,r<0>2.,r<0>2.,r<0>2.,r<0>2.' 8!:2 <.2014 3 2 3 30 46.034 > >>> 20140302033046 > >>> > >>> Getting bulky, but now all my two digit numbers can have leading > zeros. I > >>> could get fancy here, and use J to build the format specifier, but > that's > >>> premature, watch: > >>> > >>> '4.,p<->r<0>2.,p<->r<0>2.,p<T>r<0>2.,p<:>r<0>2.,p<:>r<0>2.' 8!:2 > >> <.2014 > >>> 3 2 3 30 46.034 > >>> 2014-3-2T3**** > >>> > >>> Here, I've added a prefix for each number, to get the various > separators. > >>> Unfortunately, I forgot to widen each column to make things fit. > >>> > >>> '4.,p<->r<0>3.,p<->r<0>3.,p<T>r<0>3.,p<:>r<0>3.,p<:>r<0>3.' 8!:2 > >> <.2014 > >>> 3 2 3 30 46.034 > >>> 20140-30-20T3:30:46 > >>> > >>> That's... better ,but now we can see that the concept of fill interacts > >>> badly with the concept of using a prefix, so let's try using a suffix > >>> instead: > >>> 's<->4.,s<->r<0>3.,s<T>r<0>3.,s<:>r<0>3.,s<:>r<0>3.,r<0>3.' 8!:2 > >> <.2014 > >>> 3 2 3 30 46.034 > >>> |domain error > >>> > >>> Oops, suffix is a q, not an s. > >>> > >>> 8!:2<.2014 3 2 3 30 46.034 > >>> 'q<->4.,q<->r<0>3.,q<T>r<0>3.,q<:>r<0>3.,q<:>r<0>3.,r<0>3.' 8!:2 > >> <.2014 > >>> 3 2 3 30 46.034 > >>> ****03-02T03:30:046 > >>> > >>> Almost done but I need to adjust my column widths again. > >>> > >>> 'q<->5.,q<->r<0>3.,q<T>r<0>3.,q<:>r<0>3.,q<:>r<0>3.,r<0>2.' 8!:2 > >> <.2014 > >>> 3 2 3 30 46.034 > >>> 2014-03-02T03:30:46 > >>> > >>> Done. > >>> > >>> And, that's not actually a whole lot more verbose than the other > >> expression. > >>> > >>> It's tempting to think about making 8!:2 more powerful, but it's not > >> really > >>> about power - it's a specialized tool for a specialized task. If you > want > >>> the full generality of J, it's available. > >>> > >>> Of course, if you really want an iso formatted timestamp, you could > >> always > >>> find another way to get that. Learning exercises necessarily restrict > >>> themselves in various ways. > >>> > >>> Also... http://en.wikipedia.org/wiki/ISO_8601 points out that the > >> standard > >>> really covers a lot of ground. And one thing we do not currently have > in > >> J > >>> is a way of getting at what the operating system thinks is the time > zone > >> of > >>> the user. That can matter if you are on a phone (where back a few > decades > >>> ago, computers were a bit harder to carry). > >>> > >>> Thanks, > >>> > >>> -- > >>> Raul > >>> ---------------------------------------------------------------------- > >>> 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
