If you have a lot of strings with the same format, look at the header to printf (run open 'printf' to see the file). The adverb vbsprintf creates a verb that runs faster when repeated.

Henry Rich

On 2/18/2013 10:17 AM, Devon McCormick wrote:
I like the "sprintf" method, Martin - I hadn't known about that.  It makes
my multiple cases version neater:
    ]str=. 'Hello, %s.',LF,'Nice to meet you.',LF,'%s'
Hello, %s.
Nice to meet you.
%s

    ]nmsdts=. >_2<\'Dave';'1/1/2001';'Fred';'2/18/2013'
+----+---------+
|Dave|1/1/2001 |
+----+---------+
|Fred|2/18/2013|
+----+---------+

    str sprintf"1 nmsdts
Hello, Dave.
Nice to meet you.
1/1/2001
Hello, Fred.
Nice to meet you.
2/18/2013

    $str sprintf"1 nmsdts
2 40



On Mon, Feb 18, 2013 at 8:32 AM, Raul Miller <[email protected]> wrote:

Here's a quick implementation:

template=:1 :0
   assert. -. 0 e. }., I. '{}' =/ m NB. {} syntax check
   assert. (,2) -: }.$y NB. need two cols: names; values
   nams=. {."1 ,.y
   vals=.  {:"1 ,.y
   subst=. vals {::~ nams i. <a
   ;(+/\@e.&'{}' <@({. subst@]^:('{'=[) }.)/. ]) m
)

Example use:

    '{this} food' template ,:'this';'that'
that food

or, given

example=: 0 :0 template
  Hello {name},
  Nice to meet you.
  {date}
)

This would also be an example:

    example (;:'name date'),.'George';'today'

FYI,

--
Raul

On Mon, Feb 18, 2013 at 12:18 AM, June Kim (김창준) <[email protected]>
wrote:
Hello

I am looking for a string template library in J. Is there something like
what's following(it's in Python):

"""
... Hello {name},
... Nice to meet you.
... {date}
... """.format(**dict(name="David", date="2013.2.18"))
'\nHello David,\nNice to meet you.\n2013.2.18\n'
print _

Hello David,
Nice to meet you.
2013.2.18


I think I can write a verb in J, but firstly I wanted to check if there
is
something out there already.

June
----------------------------------------------------------------------
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

Reply via email to