On Dec 29, 2014, at 6:03 PM, Greg Hendershott <greghendersh...@gmail.com> wrote:

>> But most of all, IMO it sounds like a bad idea since it tries to fight
>> the natural mixed-text-and-expressions and bend it into a
>> format-string-like thing.  I'd go with something that avoids that and
>> uses @-expressions more naturally, as in:
>> 
>>    @my-error['f]{message
>>                    given: @~v[stuff]
>>                    other-arguments: @~v[other-stuff]}
> 
> I had a similar thought. Actually I have a draft of a blog post
> looking at some handy ways to use @-exprs beyond "it's for writing
> Scribble". One way is to do what I believe langs like Python and Ruby
> refer to as "string interpolation".
> 
> Instead of:
> 
> (format "x is ~a and y is ~a" x y))
> 
> you could write:
> 
> @~a{x is @x and y is @y})

But this doesn’t work for values like images, syntax-objects, mixed-numbers, 
etc.
that can’t be converted to strings properly, so for example this works: (in 
DrRacket)
@my-printf{blah blah ~v@(plt-logo #:height 50) more blah blah ~v@#'stx more 
blah blah}
But this doesn’t:
(display @~a{blah blah ~v@(plt-logo #:height 50) more blah blah @#’stx more 
blah blah})
Also I want to be able to specify whether I want ~a or ~v etc, especially if 
one of the
arguments happens to be a string, while still handling images, syntax-objects 
etc. properly.

That’s why I wanted something that looked a bit more like @~a{x is @x and y is 
@y}, but
translated it to a format-like structure.

> With the format style you have to flip between the `~a`s on the left
> and the values on the right, making sure they match. How many times
> have you gotten them out of sync? Yeah, me too.
> 
> Whereas with the @-expr ("string interpolation") style, writing the
> values "inline" is arguably easier to write, read, and maintain
> correctly.
> 
> So if possible it might be nice to have it be @-exprs all the way up,
> rather than hiding that goodness below a format-style interface.


____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to