Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add Haskell snippets #109

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

Merged
Mathys-Gasnier merged 10 commits into quicksnip-dev:main from ACR1209:haskell-snippets
Jan 2, 2025
Merged
Changes from 1 commit
Commits
Show all changes
10 commits
Select commit Hold shift + click to select a range
819f66a
add haskell language and some basic categories/snippets
ACR1209 Jan 2, 2025
331371e
added haskell append to file snippet
ACR1209 Jan 2, 2025
123c169
add Haskell snippet to check if a file exists
ACR1209 Jan 2, 2025
f6465f4
add Haskell snippet to find files in a directory by extension
ACR1209 Jan 2, 2025
db68080
add Haskell snippet to read a file in chunks by lines
ACR1209 Jan 2, 2025
c92a041
add Haskell snippet to write text to a file
ACR1209 Jan 2, 2025
2c31172
add Haskell monad category and snippet of using the Maybe monad
ACR1209 Jan 2, 2025
63ad862
add Haskell snippet for Either monad to handle errors in computations
ACR1209 Jan 2, 2025
f2ba64a
add Haskell snippet for Writer monad to accumulate logs alongside com...
ACR1209 Jan 2, 2025
7920cd5
add Haskell snippet for State monad to manage mutable state
ACR1209 Jan 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add Haskell snippet for Writer monad to accumulate logs alongside com...
...putations
  • Loading branch information
ACR1209 committed Jan 2, 2025
commit f2ba64ad64d3e6e58bf5494e98dc6d7f43cfee64
23 changes: 23 additions & 0 deletions snippets/haskell/monads/writer-monad.md
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Writer Monad
description: Using the Writer monad to accumulate logs or other outputs alongside a computation.
author: ACR1209
tags: haskell, monads, writer, logs
---

```hs
import Control.Monad.Writer

addAndLog :: Int -> Int -> Writer [String] Int
addAndLog x y = do
tell ["Adding " ++ show x ++ " and " ++ show y]
return (x + y)

main :: IO ()
main = do
let (result, logs) = runWriter $ do
res1 <- addAndLog 3 5
addAndLog res1 1
print result -- Output: 9
print logs -- Output: ["Adding 3 and 5", "Adding 8 and 1"]
```

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /