Skip to content

Instantly share code, notes, and snippets.

@esehara
esehara / mahou.rb
Created August 8, 2016 08:50
魔方陣グルグル
class Mahou
DIMENSION = 7
def self.column_check a, b
0.upto(DIMENSION - 1) do |i|
sum = 0
0.upto(DIMENSION - 1) do |j|
sum += a[j][i]
end
raise "縦の行: #{j + 1} が #{sum} なので定和性を満しません" if sum != b
@esehara
esehara / fizzbuzz_macro.exs
Created July 21, 2016 18:22
ElixirのマクロでFizzBuzz
defmodule FizzBuzzDefine do
def define_taple do
[{"fizz", 3}, {"Buzz", 5}]
end
end
defmodule FizzBuzzHelper do
import FizzBuzzDefine
@esehara
esehara / fsharp.fs
Created June 11, 2016 08:25
初めてのFSharp
open System
let message ans user =
if (ans > user) then
"答えはもっと大きいよ"
elif (ans < user) then
"答えはもっと小さいよ"
else
"You won !"
@esehara
esehara / yapac.md
Last active March 28, 2019 04:31
[WIP] プログラミング言語処理入門以前レジュメ

プログラミング言語処理入門以前 -- Unlispについて

自己紹介

お前誰だ

  • esehara shigeo
  • プログラミング言語オタク
  • 近況については悲しいことがあり、飛ばします(現時点では無職です)
@esehara
esehara / dead_code.rb
Created May 30, 2016 20:29
dashutuで消したコード
class String
def ml2_value
self
end
end
class Fixnum
def ml2_value
self
@esehara
esehara / file0.txt
Last active May 23, 2016 05:03
cloneしたからといって、元のインスタンス変数が壊れないわけではない ref: http://qiita.com/esehara@github/items/235b785bd5ee92184650
class Dame
def initialize
@x = []
end
def add(x)
@x << x
end
def get
@esehara
esehara / file0.txt
Last active May 22, 2016 21:52
あとで処理したいと思ったらProcに相談だ!! ref: http://qiita.com/esehara@github/items/0e2d5fee050278ff74e6
class Env
def initialize
@values = {}
end
def plus(x, y)
return x + y
end
def get_value(x)
@esehara
esehara / collatz.go
Last active May 16, 2016 08:17
コラッツの計算をなんとか…
package main
import (
"flag"
"fmt"
"os"
"runtime"
"sort"
"strconv"
"strings"
@esehara
esehara / collatz.hs
Last active May 14, 2016 09:32
コラッツの計算をなんとか速くしたいんじゃよ
import Data.List
import Control.Parallel.Strategies
collatz :: Int -> (Int, Int)
collatz n = collatz_prosess n 0 n
collatz_prosess :: Int -> Int -> Int -> (Int, Int)
collatz_prosess n t f
| n == 1 = (f, t)
| even n = collatz_prosess even_n (t + 1) f
@esehara
esehara / digit.ml
Last active May 13, 2016 23:41
2進法の足し算の疑似的なシミュレーション
let max_binary_list n =
let rec generate_binary_list n m sum xs =
if sum >= n then xs
else generate_binary_list n (m * 2) (m + sum) (m :: xs) in
generate_binary_list (abs n) 2 1 [1]
let rec generate_flag_list n xs ys =
match xs with
[] -> ys
| x :: next_xs ->