Skip to content

Commit 73b0a52

Browse files
Make some rephrasing changes
1 parent 3f61988 commit 73b0a52

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

docs/User/Tutorials/module-structure-and-quick-examples.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ performance.
66

77
Streamly consists of two packages: "streamly-core" and "streamly".
88
[streamly-core](https://hackage.haskell.org/package/streamly-core)
9-
provides basic features, and depends only on GHC boot libraries, while
9+
provides most of the core functionality, and depends only on GHC boot libraries, while
1010
[streamly](https://hackage.haskell.org/package/streamly) provides
1111
higher-level features like concurrency, time based streaming
1212
combinators, lifted exceptions, and streaming network operations.
1313

14-
In streamly there are two core data structures, streams and arrays. They
15-
are computing duals of each other, streams are for dataflow style
16-
processing while arrays are for storing data. Both taken together
17-
are powerful tools for general purpose programming in a functional or
18-
dataflow style.
14+
Streamly is built around two core data structures: streams and
15+
arrays. They are computational duals—streams enable dataflow-style
16+
processing, while arrays provide efficient data storage. Together, they
17+
form a powerful foundation for general-purpose programming in
18+
functional and dataflow paradigms.
1919

2020
The general data processing functionality in `streamly` can be divided
2121
into following categories:
@@ -35,18 +35,18 @@ following categories:
3535

3636
## Streams
3737

38-
In functional programming, stream processing paradigm is a higher level
39-
alternative to the low level looping paradigm found in imperative
40-
programming. The `Stream` abstraction in streamly represents data as a
41-
sequence of items of the same type. Functional operations are used to
42-
process and transform each item in the stream to a new stream of the
43-
same or different type.
38+
In functional programming, the **stream processing paradigm** offers
39+
a higher-level alternative to the low-level looping constructs of
40+
imperative programming. In Streamly, the `Stream` abstraction models
41+
data as a sequence of items of the same type. Functional operations can
42+
then be applied to process and transform each item, producing a new
43+
stream of either the same or a different type.
4444

4545
### Stream Type
4646

47-
Following is a contrived example which generates a stream consisting of a
48-
sequence of integers, then increments each one by 1, takes the first two
49-
elements, adds them and prints the result:
47+
The following contrived example generates a stream of integers,
48+
increments each element by 1, takes the first two elements, adds them
49+
together, and prints the result:
5050

5151
```haskell
5252
import Data.Function ((&))
@@ -73,9 +73,9 @@ output. The `Fold.sum` function above is a `Fold` which consumes an
7373
integer stream as input and returns their sum as output. The fold is
7474
driven using the `Stream.fold` combinator.
7575

76-
Folds can be composed using combinators, for example, the `teeWith` combinator
77-
combines two folds such that the input of the resulting fold is passed through
78-
both of them.
76+
Folds can be composed using combinators. For example, the `teeWith`
77+
combinator combines two folds so that the input stream is fed into both
78+
the folds simultaneously.
7979

8080
```haskell
8181
f :: Monad m => Fold.Fold m Int (Int, Int)

0 commit comments

Comments
 (0)