Skip to content

Instantly share code, notes, and snippets.

@akanehara
akanehara / gist:7018029
Created October 17, 2013 01:46
標準ライブラリに on あるの知らなかった
import Data.Function
import Data.List
data Person = Person { name :: String, age :: Int } deriving Show
people = [
Person "Joe" 16
, Person "Mary" 8
, Person "Bob" 9
, Person "Mike" 8
@akanehara
akanehara / bowl-score.hs
Last active January 6, 2020 10:41
すごいHaskell読書会 in 大阪で紹介されたボウリングのスコア計算のお題(http://yashigani.hatenablog.com/entry/2013/10/23/150059)が面白そうなのでぼくもやってみました。
{-
- 課題
- ボウリングのスコアを計算するプログラムを作成する。
- ストライクはX,スペアは/,ガーターは-と表現し、
- ゲームの結果は以下のように入力される。
- XXXXXXXXXXXX #パーフェクト
- ------------------/5 # 9フレームまでガーターで10フレームでスペア
-}
module Main (main) where
@akanehara
akanehara / highlight.css
Last active March 7, 2016 09:12
pandoc code-highlight css
code > span.kw { color: #268BD2; font-weight: bold; }
code > span.dt { color: #268BD2; }
code > span.dv { color: #D33682; }
code > span.bn { color: #D33682; }
code > span.fl { color: #D33682; }
code > span.ch { color: #4070a0; }
code > span.st { color: #2AA198; }
code > span.co { color: #93A1A1; font-style: italic; }
code > span.ot { color: #A57800; }
code > span.al { color: #CB4B16; font-weight: bold; }
<?php
paramsFromArgs($class, $method, $args) {
...
}
class Foo {
public function method($a, $b, $c) {
$params = static::paramsFromArgs(__CLASS__, __METHOD__, func_get_args());
var_dump($params);
@akanehara
akanehara / combinations.php
Last active August 29, 2015 13:58
sequence :: [m a] -> m [a] like function for PHP array
<?php
function combinations()
{
$xss = func_get_args();
return array_reduce($xss, function($yss, $xs) {
$zs = [];
foreach ($yss as $ys) {
foreach ($xs as $x) {
$zs[] = array_merge($ys, array($x));
}
@akanehara
akanehara / derivedprop.php
Created April 14, 2014 10:16
Yii AR - derived property
<?php
class Foo extends CActiveRecord
{
$public $derived;
public function beforeFind()
{
$this->dbCriteria->select = 'col1, col2, col3, deriving(col2) AS derived';
}
@akanehara
akanehara / primes.php
Created May 6, 2014 02:12
Ginqのunfoldで余再帰sieve。非効率きわまりないお遊びなので実用しないでね。
<?php
require_once("vendor/autoload.php");
$primes = Ginq::from([2])->concat(Ginq::unfold(
Ginq::range(3,null,2),
function($xs) {
$x = $xs->first();
return [
$x,
$xs->drop(1)->filter(['y'=>'y % x != 0', 'x'=>$x])

TypeScript勉強会 #1

altJS

トランスレートやコンパイルによってJavaScriptの問題点を克服しようという機運

  • CoffeeScript

  • Haxe

@akanehara
akanehara / scope.coffee
Last active August 29, 2015 14:04
var がないことによる問題
# var がないことによる問題
# 関数sum内の x がローカル変数であることをいつも保証できない
# このコメントアウトを外すと sum 内の x はローカル変数でなくなる
# x = 100
sum = (n) ->
x = 0
for i in [1..n]
x += i
@akanehara
akanehara / hashmap.ts
Last active August 29, 2015 14:05
HashMap
/**
* ハッシュ関数
*/
export interface HashFun<A> {
(o : A) : string;
}
/**
* マップ
* コンストラクタにキーのハッシュ関数を与えて使う。