arrow-streams

Example code for a text on monoidal streams

https://github.com/mroman42/arrow-streams

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Example code for a text on monoidal streams

Basic Info
  • Host: GitHub
  • Owner: mroman42
  • License: gpl-3.0
  • Language: Haskell
  • Default Branch: main
  • Homepage:
  • Size: 24.4 KB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 4 years ago · Last pushed about 3 years ago
Metadata Files
Readme License Citation

readme.org

#+TITLE: Arrow streams

[[https://doi.org/10.5281/zenodo.15978541][https://zenodo.org/badge/457428731.svg]]

Monoidal streams are a coinductive construction that generalizes streams to
arbitrary monoidal categories. Monoidal streams form a feedback monoidal
category that allows us to interpret signal flow graphs and give semantics to
dataflow programming.

 - [[https://arxiv.org/submit/4138937/view][Monoidal Streams for Dataflow Programming]].
   /Elena Di Lavore, Giovanni de Felice, Mario Roman./

This repository implements premonoidal streams over Haskell =Arrows=
(approximating Set-based Freyd categories). Premonoidal streams are =ArrowLoop=
themselves.

*Example:* The Ehrenfest model for two urns and four balls.

#+begin_src haskell
ehrenfest :: Stream (Kleisli IO) () (Urn,Urn)
ehrenfest = proc () -> do

  rec

    -- The left box is initially empty, the right box is initially full.
    l <- fby -< ([],        leftBox)
    r <- fby -< ([1,2,3,4], rightBox)

    -- We pick a ball uniformly.
    ball <- unif -< ()

    -- And we move it from one box to the other.
    leftBox <- move -< (l, ball)
    rightBox <- move -< (r, ball)

  returnA -< (leftBox,rightBox)
#+end_src

Owner

  • Name: Mario Román
  • Login: mroman42
  • Kind: user
  • Location: Tallinn, Estonia
  • Company: TTU Institute of Cybernetics

Maths & CS

Citation (CITATION.cff)

cff-version: 1.0.0
message: "If you use this software, please cite the following."
authors:
  - family-names: Román    
    given-names: Mario
title: "Arrow Streams for Dataflow Programming"
version: 1.0.0
date-released: 2022-12-27

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 7
  • Total Committers: 2
  • Avg Commits per committer: 3.5
  • Development Distribution Score (DDS): 0.286
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Mario Román m****8@g****m 5
Mario Román 5****2 2

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels