From 881bb5d41ca723a2437304351d910a2612f1c066 Mon Sep 17 00:00:00 2001
From: Eli Bendersky
Date: Tue, 15 Mar 2022 10:55:33 -0700
Subject: [PATCH] Remove collection-functions
Now that we have generics, this example is not relevant.
Updates #349
---
examples.txt | 1 -
.../collection-functions.go | 113 ------------------
.../collection-functions.hash | 2 -
.../collection-functions.sh | 7 --
public/index.html | 2 -
public/recover | 4 +-
public/string-functions | 2 +-
7 files changed, 3 insertions(+), 128 deletions(-)
delete mode 100644 examples/collection-functions/collection-functions.go
delete mode 100644 examples/collection-functions/collection-functions.hash
delete mode 100644 examples/collection-functions/collection-functions.sh
diff --git a/examples.txt b/examples.txt
index a1e4ef36f..6772826d6 100644
--- a/examples.txt
+++ b/examples.txt
@@ -45,7 +45,6 @@ Sorting by Functions
Panic
Defer
Recover
-Collection Functions
String Functions
String Formatting
Text Templates
diff --git a/examples/collection-functions/collection-functions.go b/examples/collection-functions/collection-functions.go
deleted file mode 100644
index 730644c57..000000000
--- a/examples/collection-functions/collection-functions.go
+++ /dev/null
@@ -1,113 +0,0 @@
-// We often need our programs to perform operations on
-// collections of data, like selecting all items that
-// satisfy a given predicate or mapping all items to a new
-// collection with a custom function.
-
-// In some languages it's idiomatic to use [generic](http://en.wikipedia.org/wiki/Generic_programming)
-// data structures and algorithms. Go does not support
-// generics; in Go it's common to provide collection
-// functions if and when they are specifically needed for
-// your program and data types.
-
-// Here are some example collection functions for slices
-// of `strings`. You can use these examples to build your
-// own functions. Note that in some cases it may be
-// clearest to just inline the collection-manipulating
-// code directly, instead of creating and calling a
-// helper function.
-
-package main
-
-import (
- "fmt"
- "strings"
-)
-
-// Index returns the first index of the target string `t`, or
-// -1 if no match is found.
-func Index(vs []string, t string) int {
- for i, v := range vs {
- if v == t {
- return i
- }
- }
- return -1
-}
-
-// Include returns `true` if the target string t is in the
-// slice.
-func Include(vs []string, t string) bool {
- return Index(vs, t) >= 0
-}
-
-// Any returns `true` if one of the strings in the slice
-// satisfies the predicate `f`.
-func Any(vs []string, f func(string) bool) bool {
- for _, v := range vs {
- if f(v) {
- return true
- }
- }
- return false
-}
-
-// All returns `true` if all of the strings in the slice
-// satisfy the predicate `f`.
-func All(vs []string, f func(string) bool) bool {
- for _, v := range vs {
- if !f(v) {
- return false
- }
- }
- return true
-}
-
-// Filter returns a new slice containing all strings in the
-// slice that satisfy the predicate `f`.
-func Filter(vs []string, f func(string) bool) []string {
- vsf := make([]string, 0)
- for _, v := range vs {
- if f(v) {
- vsf = append(vsf, v)
- }
- }
- return vsf
-}
-
-// Map returns a new slice containing the results of applying
-// the function `f` to each string in the original slice.
-func Map(vs []string, f func(string) string) []string {
- vsm := make([]string, len(vs))
- for i, v := range vs {
- vsm[i] = f(v)
- }
- return vsm
-}
-
-func main() {
-
- // Here we try out our various collection functions.
- var strs = []string{"peach", "apple", "pear", "plum"}
-
- fmt.Println(Index(strs, "pear"))
-
- fmt.Println(Include(strs, "grape"))
-
- fmt.Println(Any(strs, func(v string) bool {
- return strings.HasPrefix(v, "p")
- }))
-
- fmt.Println(All(strs, func(v string) bool {
- return strings.HasPrefix(v, "p")
- }))
-
- fmt.Println(Filter(strs, func(v string) bool {
- return strings.Contains(v, "e")
- }))
-
- // The above examples all used anonymous functions,
- // but you can also use named functions of the correct
- // type.
- fmt.Println(Map(strs, strings.ToUpper))
-
-}
diff --git a/examples/collection-functions/collection-functions.hash b/examples/collection-functions/collection-functions.hash
deleted file mode 100644
index 27465b8db..000000000
--- a/examples/collection-functions/collection-functions.hash
+++ /dev/null
@@ -1,2 +0,0 @@
-002b2ee17f1111c7607a7b7742753af1b5a3c8c1
-uKnePZM91WV
diff --git a/examples/collection-functions/collection-functions.sh b/examples/collection-functions/collection-functions.sh
deleted file mode 100644
index 95dc0ee45..000000000
--- a/examples/collection-functions/collection-functions.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-$ go run collection-functions.go
-2
-false
-true
-false
-[peach apple pear]
-[PEACH APPLE PEAR PLUM]
diff --git a/public/index.html b/public/index.html
index c7ef0c4a9..5085e455b 100644
--- a/public/index.html
+++ b/public/index.html
@@ -121,8 +121,6 @@
Recover
- Collection Functions
-
String Functions
String Formatting
diff --git a/public/recover b/public/recover
index 699c93569..3bda174ce 100644
--- a/public/recover
+++ b/public/recover
@@ -14,7 +14,7 @@
if (e.key == "ArrowRight") {
- window.location.href = 'collection-functions';
+ window.location.href = 'string-functions';
}
}
@@ -180,7 +180,7 @@ panic and resumes in the deferred closure.
- Next example: Collection Functions.
+ Next example: String Functions.
diff --git a/public/string-functions b/public/string-functions
index aae6f68dd..32a757d42 100644
--- a/public/string-functions
+++ b/public/string-functions
@@ -9,7 +9,7 @@
onkeydown = (e) => {
if (e.key == "ArrowLeft") {
- window.location.href = 'collection-functions';
+ window.location.href = 'recover';
}