Skip to content

Instantly share code, notes, and snippets.

View kakkun61's full-sized avatar
🚂
Choo-choo

Kazuki Okamoto kakkun61

🚂
Choo-choo
View GitHub Profile
@kakkun61
kakkun61 / AbstractFunction.java
Created July 1, 2012 17:50
Functional Composition in Java ver. 1
package functionalcomposition;
public abstract class AbstractFunction implements Function {
@Override
public Function compose(final Function f) {
return new AbstractFunction() {
@Override
public double apply(double x) {
return AbstractFunction.this.apply(f.apply(x));
}
@kakkun61
kakkun61 / FunctionalComposition.cs
Created July 1, 2012 18:13
Functional Composition in C# ver. 1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FunctionalComposition
{
class FunctionalComposition
{
static void Main(string[] args)
@kakkun61
kakkun61 / FunctionalComposition.cs
Created July 8, 2012 14:53
Functional Composition in C# ver. 2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FunctionalComposition
{
class FunctionalComposition
{
static void Main(string[] args)
@kakkun61
kakkun61 / AbstractFunction.java
Created July 8, 2012 16:15
Functional Composition in Java ver. 2
package functionalcomposition;
public abstract class AbstractFunction<Param, Result> implements Function<Param, Result> {
@Override
public <Param2> Function<Param2, Result> compose(final Function<Param2, Param> f) {
return new AbstractFunction<Param2, Result>() {
@Override
public Result apply(Param2 x) {
return AbstractFunction.this.apply(f.apply(x));
}
@kakkun61
kakkun61 / gist:3071774
Created July 8, 2012 17:00
Functional Composition in C++ ver. 1
#include<iostream>
#include<functional>
#include<cmath>
using namespace std;
using namespace std::tr1;
template<typename Param, typename Middle, typename Result>
function<Result(Param)> compose(const function<Result(Middle)>& f, const function<Middle(Param)>& g) {
return [f, g](Param x){return f(g(x));};
@kakkun61
kakkun61 / gist:3071916
Created July 8, 2012 17:26
Functional Composition in C++ ver. 2
#include<iostream>
#include<functional>
#include<cmath>
using namespace std;
using namespace std::tr1;
template<typename Param, typename Result>
class Function {
public:
@kakkun61
kakkun61 / gist:3072012
Created July 8, 2012 17:42
Functional Composition in Haskell
#! /usr/bin/runhaskell
module Main (
main
) where
f = exp
g = (** 2)
h = (+ 1) . negate
main = print $ (f.g.h) 10
[color]
ui = true
[alias]
log-graph = log --graph --decorate --abbrev-commit --all
[core]
editor = emacs
#editor = nano
[credential]
helper = cache
[gui]
@kakkun61
kakkun61 / gist:3148173
Created July 20, 2012 01:52
Functional Composition in C++ ver. 2.1
#include<iostream>
#include<functional>
#include<cmath>
using namespace std;
using namespace std::tr1;
template<typename Param, typename Result>
class Function {
public:
@kakkun61
kakkun61 / gist:3148354
Created July 20, 2012 02:47
Functional Composition in C++ ver. 2.2
#include<iostream>
#include<functional>
#include<cmath>
using namespace std;
using namespace std::tr1;
template<typename Param, typename Result>
class Function {
public: