Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #22090
| Date | 2012-03-23 18:00 +0000 |
|---|---|
| From | MRAB <python@mrabarnett.plus.com> |
| Subject | Re: Stream programming |
| References | <4f6c9e17$0$1383$4fafbaef@reader2.news.tin.it> <CAOFbRmL63M5TZ4mqaz70J04HVP6OiKVSYBudayHwJUt-SZ1QFA@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.941.1332525634.3037.python-list@python.org> (permalink) |
On 23/03/2012 16:33, Nathan Rice wrote:
>> I will use "<=>" to mean "is equivalent to". That's not part of the DSL.
>> A flow has one or more streams:
>> 1 stream:
>> [1,2,3]
>> 2 streams:
>> [1,3,5] | [2,4,6]
>> Two flows can be concatenated:
>> [1,2,3] + [4,5,6]<=> [1,2,3,4,5,6]
>> [0] + ([1,2] | [3,4]) + [10]<=> [0,1,2,10] | [0,3,4,10]
>> ([1,2] | [10,20]) + ([3,4] | [30,40])<=> [1,2,3,4] | [10,20,30,40]
>
> Algebraically, your concatenation rules don't really make sense - your
> flows are both distributive and non distributive. You also make the
> implicit assumption of an order over streams in a flow, but disregard
> the implications of that assumption in some cases. I understand what
> you're trying to communicate, so I think you need to be a little more
> strict and explicit in your definitions.
>
When concatenating, either there are the same number of streams, or one
of them is a single stream which is duplicated.
Therefore, in this example:
[0] + ([1, 2] | [3, 4])
you're concatenating a single stream with a pair, so the single stream
is duplicated:
([0] | [0]) + ([1, 2] | [3, 4])
and then they can be concatenated:
([0, 1, 2] | [0, 3, 4])
However, this:
([0, 1] | [2, 3]) + ([4, 5] | [6, 7] | [8, 9])
won't work.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-23 17:00 +0100
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-23 17:02 +0100
Re: Stream programming Nathan Rice <nathan.alexander.rice@gmail.com> - 2012-03-23 12:33 -0400
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-23 21:33 +0100
Re: Stream programming Nathan Rice <nathan.alexander.rice@gmail.com> - 2012-03-23 17:18 -0400
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-24 01:26 +0100
Re: Stream programming Ethan Furman <ethan@stoneleaf.us> - 2012-03-23 14:12 -0700
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-24 00:57 +0100
Re: Stream programming MRAB <python@mrabarnett.plus.com> - 2012-03-23 18:00 +0000
Re: Stream programming Nathan Rice <nathan.alexander.rice@gmail.com> - 2012-03-23 15:23 -0400
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-23 21:44 +0100
Re: Stream programming Ray Song <emacsray@gmail.com> - 2012-03-24 07:32 +0800
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-24 01:41 +0100
Re: Stream programming Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-03-24 03:23 +0000
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-24 12:05 +0100
Re: Stream programming Jean-Michel Pichavant <jeanmichel@sequans.com> - 2012-03-26 11:27 +0200
Re: Stream programming Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-26 13:45 +0200
csiph-web