This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Current (C# 5) syntax | |
var request = new CreateIndexRequest("new-index-name") | |
{ | |
IndexSettings = new IndexSettings | |
{ | |
Settings = new Dictionary<string, object> | |
{ | |
{"index.settings", "value"} | |
}, | |
Mappings = new List<RootObjectMapping> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE | |
TypeOperators | |
, TemplateHaskell | |
#-} | |
module Tie where | |
import Prelude hiding ((.), id) | |
import Control.Category | |
import Data.Record.Label |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE DoRec #-} | |
module ExprLang where | |
import Control.Monad.Error | |
import Data.List | |
import Data.Maybe | |
-- Language |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Monad type class ported to C# | |
// Only tested with: Mono C# compiler version 2.4.2.3 | |
// | |
// The Monad type class has been split up into two .NET interface: | |
// - IMonad<A> has functions that can be applied _to_ monads (i.e. bind) | |
// - IMonadDictionary<A> has functions that _create_ monads (i.e. unit) | |
// | |
// Because .NET doesn't support higher kinded generics, we loose a bit of | |
// type safety. After calling `bind`, the return value has to be casted to | |
// the proper type. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Read type class ported to C# | |
// Only tested with: Mono C# compiler version 2.4.2.3 | |
// | |
// Because there are no static interface members, new instances of the | |
// Dictionary classes have to be created (although they contain no state). | |
// | |
// The functions using the read method (like mulStrings) explicitly mention | |
// `int` in IReadDictionary<int>, but that's just like `x = read "4" :: Int` in | |
// Haskell. | |
// |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Functor type class ported to C# | |
// Only tested with: Mono C# compiler version 2.4.2.3 | |
// | |
// Because .NET doesn't support higher kinded generics, we can't exactly port | |
// the Functor type class. | |
// However, if we're willing to give up a bit of type safety, we can get the | |
// IFuctor interface to work. | |
// | |
// We only have to add a single type cast, directly after using fmap. E.g: | |
// var xs = new List<int>(); |
NewerOlder