xsl-list
[Top] [All Lists]

Re: [xsl] XSLT 2.0 courses?

2020-09-21 10:43:22
... and of course this can be simplified to

$a, $b[empty($a)], $c[empty(($a,$b))]

can't it?

Cheers again, Wendell


On Mon, Sep 21, 2020 at 11:37 AM Wendell Piez wapiez(_at_)wendellpiez(_dot_)com 
<
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

David,

Yup, just like ($a,$b,$c)[1]. Not thinking of the "return all of $a"
problem.

For that I might (today) write

( ($a[1] ! $a), ($b[empty($a)][1] ! $b), ($c[empty(($a,$b))][1] ! $c) )

although not before thorough testing, and since it fails the clarity test
it would have to be commented with a short essay ... so I might also use
if/then/else, or XSLT.

Cheers, Wendell



On Mon, Sep 21, 2020 at 10:17 AM David Carlisle 
d(_dot_)p(_dot_)carlisle(_at_)gmail(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:



On Mon, 21 Sep 2020 at 15:08, Wendell Piez wapiez(_at_)wendellpiez(_dot_)com 
<
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi,

Aside from the name question (I'd maybe like first-available()?) the
question arises, what would be the difference between
first-defined(($a,$b,$c)) and head(($a,$b,$c)) or ($a,$b,$c) => head() as
the case may be?


It would need to be an overloaded function like concat taking any number
of arguments so first-defined($a,$b,$c)  if you ,-join the lists first you
no longer can return $a if non empty,  head(($a,$b,$c)) is the head of the
sequence ($a,$b,$c) which is the flattened sequence of items from $a $b and
$c so would just return the first item in $a not all of $a.

David




Cheers, Wendell


On Mon, Sep 21, 2020 at 9:41 AM Graydon graydon(_at_)marost(_dot_)ca <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

On Mon, Sep 21, 2020 at 01:25:56PM -0000, Chris Papademetrious
christopher(_dot_)papademetrious(_at_)synopsys(_dot_)com scripsit:
Good point. Perhaps this could be handled by chaining them?

$a otherwise $b otherwise $c otherwise $default

I think "otherwise" is fine for the pair case!

It's clearer and easier to read than ($a,$b)[1] and it'll be easier to
search for in documentation.

Chaining otherwise as you propose doesn't strike me as clearer or easier
to read; the location of the implicit parentheses is extremely important
in that example and as soon as the values are the least bit complex all
the parens will likely need to be made explicit.

On the other hand, we've already got a concept of sequence, and commas,
so ($a,$b,$c,$default) => first-defined()

strikes me as clearer and easier to read than chaining "otherwise".
Could even add a two-parameter version so the second parameter defines
how to handle values which are false(). :)

--
Graydon Saunders  | graydonish(_at_)gmail(_dot_)com
Þæs oferéode, ðisses swá mæg.
-- Deor  ("That passed, so may this.")



--
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...
XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/2739265> (by
email)

XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/174322> (by
email)



--
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...
XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/174322> (by
email <>)



-- 
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>