SM

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

3431 stars 品質 72 トレンド 41MIT

🦄 モナドや人気のFP抽象化は、Go 1.18+ジェネリック(オプション、結果、いずれも...)で駆動されています。

概要

- samber/ro: Reactive Programming for Go: イベント駆動型アプリケーション向けの宣言的かつコンポーズ可能なAPI- samber/lo: Go 1.18+をベースにしたLodashスタイルのGoライブラリ ジェネリック - samber/do: Go 1.18+に基づく依存注入ツールキット ジェネリック - samber/cc-skills-golang: Golang向けAIエージェントスキル 💖 スポンサー:DBOS - Go用耐久的なワークフローオーケストレーションライブラリ 私はこのようなユーティリティライブラリが大好きです。この名前は「Monad Go」に似ており、どのGoパッケージもこの名前を使っていません。 現在、以下のデータ型をサポートしています: - オプション[T](おそらく)- 結果[T] - いずれか[A, B] - いずれかX[T1, ..., TX](Xが3と5の間にある場合)- 未来[T] - IO[T] - IOEither[T] - タスク[T] - TaskEither[T] - 状態[S, A] このライブラリはv1で、SemVerを厳格に守っています。 v2.0.0以前にエクスポートされたAPIに壊滅的な変更は一切加えられません。 このライブラリにはGo stdライブラリ以外に依存関係はありません。

概要(AI 翻訳)

🦄 samber/moはモナドや人気のFP抽象化をGoプロジェクトに持ち込みます。samber/moは最近のGo 1.18+ジェネリックを使用しています。

インスピレーションを受けた作品:

  • スカラ
  • 錆
  • FP-TS

関連項目:

  • samber/ro: Reactive Programming for Go:イベント駆動型アプリケーション向けの宣言型かつコンポーズ可能なAPI
  • samber/lo:Go 1.18+ジェネリックに基づくLodashスタイルのGoライブラリ
  • samber/do:Go 1.18+ Genericsに基づく依存注入ツールキット
  • samber/cc-skills-golang:Golang の AI エージェントスキル

💖 スポンサー:

DBOS - Go用の耐久性のあるワークフローオーケストレーションライブラリ


なぜこの名前なのか?

私はこのようなユーティリティライブラリに短い名前が大好きです。この名前は「Monad Go」に似ており、どのGoパッケージもこの名前を使っていません。

💡 特徴

現在、以下のデータ型をサポートしています:

  • Option[T](多分)
  • Result[T]
  • Either[A, B]
  • EitherX[T1, ..., TX](Xが3と5の間にある)
  • Future[T]
  • IO[T]
  • IOEither[T]
  • Task[T]
  • TaskEither[T]
  • State[S, A]

🚀 インストール

このライブラリはv1で、SemVerを厳格に守っています。

v2.0.0以前にエクスポートされたAPIに壊滅的な変更は一切加えられません。

このライブラリにはGo stdライブラリ以外に依存関係はありません。

💡 クイックスタート

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

mo - Monads

🦄 samber/mo brings monads and popular FP abstractions to Go projects. samber/mo uses the recent Go 1.18+ Generics.

Inspired by:

  • Scala
  • Rust
  • FP-TS

See also:

  • samber/ro: Reactive Programming for Go: declarative and composable API for event-driven applications
  • samber/lo: A Lodash-style Go library based on Go 1.18+ Generics
  • samber/do: A dependency injection toolkit based on Go 1.18+ Generics
  • samber/cc-skills-golang: AI Agent Skills for Golang


Why this name?

I love short name for such utility library. This name is similar to “Monad Go” and no Go package uses this name.

💡 Features

We currently support the following data types:

  • Option[T] (Maybe)
  • Result[T]
  • Either[A, B]
  • EitherX[T1, ..., TX] (With X between 3 and 5)
  • Future[T]
  • IO[T]
  • IOEither[T]
  • Task[T]
  • TaskEither[T]
  • State[S, A]

🚀 Install

go get github.com/samber/mo@v1

# AI Agent Skill
npx skills add https://github.com/samber/cc-skills-golang --skill golang-samber-mo

This library is v1 and follows SemVer strictly.

No breaking changes will be made to exported APIs before v2.0.0.

This library has no dependencies except the Go std lib.

💡 Quick start

You can import mo using:

import (
    "github.com/samber/mo"
)

Quick example using the option sub-package Pipe3 to compose transformations:

import (
    "github.com/samber/mo"
    "github.com/samber/mo/option"
)

out := option.Pipe3(
    mo.Some(21),
    option.Map(func(v int) int { return v * 2 }),
    option.FlatMap(func(v int) mo.Option[int] { return mo.None[int]() }),
    option.Map(func(v int) int { return v + 21 }),
)
// out == None[int]

Then use one of the helpers below:

GitHub で README 全文を見る

推奨ツール

別のキーワードを試すか、フィルタを外してください。

インストール

npx skillfish add samber/mo
MCP 初心者?mcpskill.org のガイドから始めましょう →