Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Examples of JS-Like higher-order functions in C#
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
//Rextester.Program.Main is the entry point for your code. Don't change it. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { public class Program { public static void Main(string[] args) { int[] data = new int[] {0, 1, 2, 3}; Console.WriteLine(data.CollStr()); Console.WriteLine(data.Map(x => x + 1).CollStr()); //print array human-readable Console.WriteLine(data.Filter(x => x > 1).CollStr()); //+1 to all Console.WriteLine(data.Fold(0, (i, o) => i + o)); //sum } } static class Extn { public static IEnumerable<Out> Map<In,Out>(this IEnumerable<In> a, Func<In,Out> f) { foreach(In i in a) yield return f(i); } public static Out Fold<In,Out>(this IEnumerable<In> a, Out initial, Func<In,Out,Out> f) { Out tor = initial; foreach(In i in a) tor = f(i, tor); return tor; } public static IEnumerable<T> Filter<T>(this IEnumerable<T> a, Func<T, bool> f) { foreach(T t in a) if(f(t)) yield return t; } public static string JoinToString<T>(this IEnumerable<T> a, string joiner = "") { string result = a.Fold("", (i, o) => o + i.ToString() + joiner); return joiner.Length == 0 ? result : result.Remove(result.Length - joiner.Length); } public static string CollStr<T>(this IEnumerable<T> coll) { string res = coll.Fold("[", (i, o) => o + i.ToString() + ","); return res.Remove(res.Length - 1) + "]"; } } }
Show compiler warnings
[
+
]
Show input
Compilation time: 0,17 sec, absolute running time: 0,08 sec, cpu time: 0,08 sec, average memory usage: 13 Mb, average nr of threads: 3
edit mode
|
history
|
discussion
[0,1,2,3] [1,2,3,4] [2,3] 6