From 58c60c19e4fadef97b3e8a90c5d2612a8d2e1c9e Mon Sep 17 00:00:00 2001 From: "Dr. Carsten Leue" Date: Sat, 30 Sep 2023 23:25:06 +0200 Subject: [PATCH] fix: add some more examples Signed-off-by: Dr. Carsten Leue --- samples/presentation/examples/data/file1.txt | 1 + samples/presentation/examples/data/file2.json | 3 + .../examples/example_sideeffect_test.go | 105 ++++++++++++++++++ .../examples/examples_monad_test.go | 50 +++++++++ samples/presentation/introduction.pptx | Bin 1587140 -> 1602680 bytes 5 files changed, 159 insertions(+) create mode 100644 samples/presentation/examples/data/file1.txt create mode 100644 samples/presentation/examples/data/file2.json create mode 100644 samples/presentation/examples/example_sideeffect_test.go create mode 100644 samples/presentation/examples/examples_monad_test.go diff --git a/samples/presentation/examples/data/file1.txt b/samples/presentation/examples/data/file1.txt new file mode 100644 index 0000000..9fb0773 --- /dev/null +++ b/samples/presentation/examples/data/file1.txt @@ -0,0 +1 @@ +Some data \ No newline at end of file diff --git a/samples/presentation/examples/data/file2.json b/samples/presentation/examples/data/file2.json new file mode 100644 index 0000000..d37b1b0 --- /dev/null +++ b/samples/presentation/examples/data/file2.json @@ -0,0 +1,3 @@ +{ + "a": 10 +} \ No newline at end of file diff --git a/samples/presentation/examples/example_sideeffect_test.go b/samples/presentation/examples/example_sideeffect_test.go new file mode 100644 index 0000000..04e7533 --- /dev/null +++ b/samples/presentation/examples/example_sideeffect_test.go @@ -0,0 +1,105 @@ +// Copyright (c) 2023 IBM Corp. +// All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package examples + +import ( + "encoding/json" + "fmt" + "os" + + B "github.com/IBM/fp-go/bytes" + F "github.com/IBM/fp-go/function" + IOE "github.com/IBM/fp-go/ioeither" + "github.com/IBM/fp-go/ioeither/file" + J "github.com/IBM/fp-go/json" + T "github.com/IBM/fp-go/tuple" +) + +type Sample struct { + Value int `json:"a"` +} + +func (s Sample) getValue() int { + return s.Value +} + +func Example_io_flow() { + + // IOE.IOEither[error, string] + text := F.Pipe2( + "data/file1.txt", + file.ReadFile, + IOE.Map[error](B.ToString), + ) + + // IOE.IOEither[error, int] + value := F.Pipe3( + "data/file2.json", + file.ReadFile, + IOE.ChainEitherK(J.Unmarshal[Sample]), + IOE.Map[error](Sample.getValue), + ) + + // IOE.IOEither[error, string] + result := F.Pipe1( + IOE.SequenceT2(text, value), + IOE.Map[error](func(res T.Tuple2[string, int]) string { + return fmt.Sprintf("Text: %s, Number: %d", res.F1, res.F2) + }), + ) + + fmt.Println(result()) + + // Output: + // Right[, string](Text: Some data, Number: 10) + +} + +func io_flow_idiomatic() error { + + // []byte + file1AsBytes, err := os.ReadFile("data/file1.txt") + if err != nil { + return err + } + // string + text := string(file1AsBytes) + + // []byte + file2AsBytes, err := os.ReadFile("data/file2.json") + if err != nil { + return err + } + var value Sample + if err := json.Unmarshal(file2AsBytes, &value); err != nil { + return err + } + // string + result := fmt.Sprintf("Text: %s, Number: %d", text, value.Value) + + fmt.Println(result) + + return nil +} + +func Example_io_flow_idiomatic() { + if err := io_flow_idiomatic(); err != nil { + panic(err) + } + + // Output: + // Text: Some data, Number: 10 +} diff --git a/samples/presentation/examples/examples_monad_test.go b/samples/presentation/examples/examples_monad_test.go new file mode 100644 index 0000000..c12f673 --- /dev/null +++ b/samples/presentation/examples/examples_monad_test.go @@ -0,0 +1,50 @@ +// Copyright (c) 2023 IBM Corp. +// All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package examples + +type HKT[T any] struct { +} + +// Pointed +func Of[A any](A) HKT[A] { return HKT[A]{} } + +// Functor +func Map[A, B any](func(A) B) func(HKT[A]) HKT[B] { return func(HKT[A]) HKT[B] { return HKT[B]{} } } +func MapTo[A, B any](A) func(HKT[A]) HKT[B] { return func(HKT[A]) HKT[B] { return HKT[B]{} } } + +// Chain +func Chain[A, B any](func(A) HKT[B]) func(HKT[A]) HKT[B] { + return func(HKT[A]) HKT[B] { return HKT[B]{} } +} +func ChainTo[A, B any](HKT[B]) func(HKT[A]) HKT[B] { + return func(HKT[A]) HKT[B] { return HKT[B]{} } +} +func ChainFirst[A, B any](func(A) HKT[B]) func(HKT[A]) HKT[A] { + return func(HKT[A]) HKT[A] { return HKT[A]{} } +} + +// Apply +func Ap[A, B any](HKT[A]) func(HKT[func(A) B]) HKT[B] { + return func(HKT[func(A) B]) HKT[B] { return HKT[B]{} } +} + +// Derived +func Flatten[A, B any](HKT[HKT[A]]) HKT[A] { + return HKT[A]{} +} +func Reduce[A, B any](func(B, A) B, B) func(HKT[A]) HKT[B] { + return func(HKT[A]) HKT[B] { return HKT[B]{} } +} diff --git a/samples/presentation/introduction.pptx b/samples/presentation/introduction.pptx index 3f3dcd1dc5bf9247bc4d8d61fadac0e42cadbfe1..bfa3e898c0e60d85908fc7d2de0a0b15f7c9a3fb 100644 GIT binary patch delta 32481 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 WIl`!PU}Lfo+lV!wNBS-RJ^u^3-3%B2