From: Ricardo Wurmus <rekado@elephly.net>
To: zimoun <zimon.toutoune@gmail.com>
Cc: gwl-devel@gnu.org
Subject: Re: Preparing for a new release
Date: Mon, 10 Feb 2020 07:31:45 +0100 [thread overview]
Message-ID: <875zgfosvi.fsf@elephly.net> (raw)
In-Reply-To: <CAJ3okZ0SPhFRY+pZbpZHDSjaK2fdVzpXNjUBGv7vi0Q4XfAQpA@mail.gmail.com>
zimoun <zimon.toutoune@gmail.com> writes:
>> * It’s not possible to select more than one tagged item
>>
>> In my test workflow I’m generating a bunch of inputs by mapping over
>> an argument list. Now the problem is that I can’t select all of these
>> inputs easily in a code snippet. With the syntax we have I can only
>> select the first item following a tag.
>>
>> To address this I’ve extended the accessor syntax, so this works now:
>>
>> --8<---------------cut here---------------start------------->8---
>> process frobnicate
>> packages "frobnicator"
>> inputs
>> . genome: "hg19.fa"
>> . samples: "a" "b" "c"
>> outputs
>> . "result"
>> # {
>> frobnicate -g {{inputs:genome}} --files {{inputs::samples}} > {{outputs}}
>> }
>> --8<---------------cut here---------------end--------------->8---
>>
>> Note how {{inputs::samples}} is substituted with “a b c”. With just a
>> single colon it would be just “a”. Single colon = single item; double
>> colon = more than one item.
>
> I am confused by the syntax.
> Well how to select the second element "b"?
>
> Naively, I would tempt to write {{inputs:samples:2}} or {{inputs::samples:2}}.
There’s no syntax for that because you can use good ol’ list processing
(let’s call it “Listp”, or perhaps “Lisp”…) to work on this outside of
the code snippet.
To me these two cases — accessing a single item and accessing multiple
items — are just really common enough to deserve their own syntax,
especially because the plain Scheme way to do this is rather dense:
(and=> (memq inputs #:hello) cadr)
and
(and=> (memq inputs #:hello)
(lambda (sublist)
(break keyword? (cdr sublist))))
I wouldn’t want to see bioinformaticians paste these kind of things all
over the place.
My hope is that in-list access is much less common and could either be
rewritten to place the item of interest in the first place, or could be
solved with a let binding.
--
Ricardo
next prev parent reply other threads:[~2020-02-10 6:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-08 12:39 Preparing for a new release Ricardo Wurmus
2020-02-08 20:38 ` Kyle Meyer
2020-02-08 21:50 ` Ricardo Wurmus
2020-02-09 13:00 ` Ricardo Wurmus
2020-02-09 23:33 ` zimoun
2020-02-10 1:25 ` Kyle Meyer
2020-02-10 7:34 ` zimoun
2020-02-10 6:31 ` Ricardo Wurmus [this message]
2020-02-10 7:43 ` zimoun
2020-02-10 21:28 ` Ricardo Wurmus
2020-02-10 23:43 ` zimoun
2020-02-11 9:39 ` Ricardo Wurmus
2020-02-11 9:34 ` Ricardo Wurmus
2020-02-11 15:37 ` zimoun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875zgfosvi.fsf@elephly.net \
--to=rekado@elephly.net \
--cc=gwl-devel@gnu.org \
--cc=zimon.toutoune@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.