-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sub streams implementation #35
Comments
Don't implementSub-streams represents structured data. It's possible to avoid them and use Problems
|
Bracket data typeFollow classical FBP and introduce Problems
|
BoolsThere is already a type with 2 possible values - boolean. Just is it with
Problems
|
SignalsUse one
Problems
|
Only flat sub streamsDo not use sub-streams to represent nested structures, use them to represent dynamic lists only Problems
|
Native (struct-based) interfacesGo has builtin interfaces like
Problems
Gradual typing fixThe following form will make gradual typing problem less likely (although won't solve it completely)
|
Sub-stream defenitionsJust thinking out loud!Maybe there's a way to have substreams descried staticly just as we have port-types and like we would like to have types? Something like a: bank-stream:
branch:
type: int
children: # must be array because there could be stream like (a (b b) (c c))
- account:
type: int
children:
- date:
type: int
- trans:
type: str Maybe key names even can be ommited somehow? |
Generic structImplement
Problems
|
Sub streams with support of unlimited nesting allows asynchronously process nested data but they are not implemented and it seems to be very hard to achieve.
Example from FBP book:
Problems
Related to https://github.com/emil14/fbp-book-ru/blob/main/7_compos.md (sub-streams) and #58
Related to #58
Are staticly typed sub-streams even possible? Imagine a component with sub-stream sensitive inport - where does it takes input? From several different components that we hope sends their data in the right order?
The text was updated successfully, but these errors were encountered: