Skip to content

Instantly share code, notes, and snippets.

View bleis-tift's full-sized avatar

bleis-tift bleis-tift

View GitHub Profile
@bleis-tift
bleis-tift / ninja.md
Last active December 19, 2015 06:49 — forked from mzp/ninja.md

Functional Ninja #3 (OCaml็ทจ ใใฎ2)

Functional Ninjaใจใฏ

๏พ†๏พ๏ฝผ๏พž๏ฝฌ๏ฝฐ

ไบ‹ๅ‰ๆบ–ๅ‚™

@bleis-tift
bleis-tift / AgentRuntime.scala
Last active December 18, 2015 01:39 — forked from karno/AgentRuntime.scala
ไป•ไบ‹ใฎ็‰‡ๆ‰‹้–“ใซๅ˜็ด”ใซๆ›ธใๆ›ใˆใŸใ ใ‘ใชใฎใงใ‚ขใƒฌใ ใ‘ใฉใ€‚Scalaใฃใฆใ‚ทใƒฃใƒ‰ใ‚ฆใ‚คใƒณใ‚ฐใงใใŸใฃใ‘ใƒปใƒปใƒปใƒฌใƒ™ใƒซ
class AgentRuntime(profile: Properties, holder: ServiceBindingHolder[MicroRuntimeServiceBinder]) {
def startAgent(name: String, args: Array[AnyRef]): Future[AgentController] =
for {
binder <- holder.getServiceBinder()
binder <- createContainer(binder)
binder <- startAgentCore(name, args, binder)
} yield MicroRuntime.getAgent(name)
@bleis-tift
bleis-tift / gist:5610187
Last active December 17, 2015 12:29
in/out้›ฃใ—ใ„
using System;
interface IPiyo<in T, out U>
{
Func<T, U> Hoge(Func<U, T> f);
Func<Func<U, T>, U> Hoge(Func<Func<T, U>, T> f);
Func<T, Func<T, U>> Hoge(Func<U, Func<U, T>> f);
Func<Func<U, T>, Func<T, U>> Hoge(Func<Func<T, U>, Func<U, T>> f);
}
using System;
namespace LangExt.Playground.CurriedFunc
{
public delegate Func<TArg2, TResult> CFunc<in TArg1, in TArg2, out TResult>(TArg1 arg);
public delegate CFunc<TArg2, TArg3, TResult> CFunc<in TArg1, in TArg2, in TArg3, out TResult>(TArg1 arg);
public delegate CFunc<TArg2, TArg3, TArg4, TResult> CFunc<in TArg1, in TArg2, in TArg3, in TArg4, out TResult>(TArg1 arg);
public delegate CFunc<TArg2, TArg3, TArg4, TArg5, TResult> CFunc<in TArg1, in TArg2, in TArg3, in TArg4, in TArg5, out TResult>(TArg1 arg);
class Sample
{
@bleis-tift
bleis-tift / gist:5605388
Last active December 17, 2015 11:49
C#ใงswitchๆ–‡ใ‚’ๅ†็™บๆ˜Žใ—ใฆใ—ใพใฃใŸ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LangExt; // ver1.x
namespace LangExt.Playground
{
public interface IPattern<T, U>
{
@bleis-tift
bleis-tift / 0.LazyVal.cs
Last active December 17, 2015 07:28 — forked from anonymous/gist:5572563
System.Lazyใฎๅˆๆˆใงใใ‚‹็‰ˆ็š„ใช
using System;
using System.ComponentModel;
namespace LangExt.Playground
{
public sealed class LazyVal<T>
{
readonly Func<T> f;
bool hasValue = false;
T value;
using System;
namespace LangExt.Playground
{
public sealed class LazyVal<T>
{
T value;
bool hasValue = false;
readonly Func<T> f;
public abstract class Base<T>
{
public abstract T Method();
}
public class Sub1 : Base<int>
{
public override int Method() { return 0; }
}
interface A {
hoge(str:string): string;
}
interface B {
hoge(str:string): string;
}
class AImpl implements A {
hoge(str) {
@bleis-tift
bleis-tift / TaskMonad.cs
Created November 20, 2012 07:18 — forked from yoshihiro503/TaskMonad.cs
C# ใง้žๅŒๆœŸใ‚ฟใ‚นใ‚ฏ ใƒขใƒŠใƒ‰ๆ›ธใ„ใฆใฟใŸใ€‚
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Proofcafe
{
public static class TaskMonad