Skip to content

Instantly share code, notes, and snippets.

View syou6162's full-sized avatar

Yasuhisa Yoshida syou6162

View GitHub Profile
@syou6162
syou6162 / gist:10544
Created September 13, 2008 01:36
集合を扱う関数などなど
#直積を書き出す関数
write.direct.product <- function(x,y){
e <- expand.grid(x,y)
m <- mapply(function(x,y){paste("(",x,",",y,")",sep="")},e[,1],e[,2])
return(paste("{",paste(m,collapse=","),"}",sep=""))
}
write.direct.product(1:3,4:6)
#R \times RからRへの写像の例
apply(expand.grid(1:3,4:6),1,function(x){x[1]*x[2]})
@syou6162
syou6162 / gist:10566
Created September 13, 2008 06:46
Tsukuba.Rの資料用
library(scatterplot3d)
steepest_descent <- function(epsilon,tau,x_bar1=-10,x_bar2=-20,beta=1,n=2000){
#関数内関数の定義
f <- function(x){x1 <- x[1];x2 <- x[2];return(100*(x1-x2)^2+(x1-1)^2)}
#数式微分
trig.exp <- expression(100*(x1-x2)^2+(x1-1)^2)
D.sc1 <- D(trig.exp, "x1")
D.sc2 <- D(trig.exp, "x2")
@syou6162
syou6162 / update_incanter_window.clj
Created January 5, 2012 21:26
incanterでwindowを閉じずにplotの内容を変更していく方法
(use '(incanter core stats charts))
(def min-val 1)
(def max-val 10)
(def chart-before (function-plot sin min-val max-val))
(def x (view chart-before))
(def chart-after (function-plot log min-val max-val))
@syou6162
syou6162 / gist:1567578
Created January 5, 2012 22:05
incanterの描画を1秒置きに更新していくコード
(use '(incanter core stats charts))
(def min-val 1)
(def max-val 10)
(def x (view (function-plot sin min-val max-val)))
(for [i (range 100)]
(let [chart-before (function-plot sin min-val max-val)
chart-after (function-plot log min-val max-val)]
(.setContentPane x (org.jfree.chart.ChartPanel. (rand-nth [chart-before chart-after])))
@syou6162
syou6162 / Jark.md
Created February 8, 2012 02:23
Jarkの使い方メモ

Jarkの使い方メモ

Clojureにはleiningenという便利なツールがありますが

  • 小さなスクリプト的な使い方をしたい
  • テストを小まめに走らせたい

などのときにlein自体の起動(というかjvmの起動)の遅さが気になってきます。どうにかしたいと思って調べていったところ、jarkというのが便利そうだったので、使い方を調べてみることにしました。

というか本家のほうでtest/script.clj --foo "a" --bar "b"という感じで動かせると書いてあるんですが、これだといくら頑張っても動かなかった。。。それとjark ns load XXX.cljもダメでした。なんでだろう。。。

@syou6162
syou6162 / file0.txt
Created February 8, 2012 07:45
Jarkの使い方メモ ref: http://qiita.com/items/2108
/Users/yasuhisa/Dropbox/lda_clj% jark server start
java -Xms256m -Xmx512m -cp /Users/yasuhisa/.cljr/lib/jark-0.4-SNAPSHOT-clojure-1.3.0-standalone.jar clojure.tools.jark.server 9000 &
Started JVM on port 9000
@syou6162
syou6162 / lein_plugins.md
Created February 8, 2012 23:55
leinのpluginリスト

どのマシンにどのバージョンをインストールしたかとかを覚えていないのでメモ。

lein plugin install swank-clojure 1.3.4
lein plugin install oauth-clj 0.0.2
lein plugin install org.danlarkin/clojure-json "1.2-SNAPSHOT"
lein plugin install incanter "1.2.3-SNAPSHOT"
lein plugin install clojure-opennlp "0.1.7"
lein plugin install clucy "0.2.2"
lein plugin install lein-repls 1.6.0
@syou6162
syou6162 / example_of_download_images_from_hatena_fotolife.clj
Created February 10, 2012 08:42
はてなフォトライフから並行に画像をダウンロードしてくる例
(use '[clojure.java.io :only (copy output-stream)])
(def pic-url "http://blog.stackoverflow.com/wp-content/uploads/justice-league-small.jpg")
(defn input-stream [pic-url]
(-> pic-url java.net.URL. .openConnection .getInputStream))
(defn get-byte-array-stream [input-stream]
(let [byte-array-stream (java.io.ByteArrayOutputStream.)]
(copy input-stream byte-array-stream)
@syou6162
syou6162 / example_of_dynamic_vars_in_sqrt.clj
Created February 11, 2012 10:06
SICPで同じような関数を定義、その度に名前を付け変えるのは結構面倒なんだけど、clojureだとdynamic varsを使うとその場で関数の定義を変えれて便利だなーと思った例
(defn average [x y]
(/ (+ x y) 2))
(defn improve [guess x]
(average guess (/ x guess)))
(defn square [x] (* x x))
(defn good-enough? [guess x]
(< (Math/abs (- (square guess) x)) 0.001))
@syou6162
syou6162 / tree_iterator_in_ruby.rb
Created February 14, 2012 10:48
Treeのオブジェクトに対してeachでごにょごにょしたいときのテンプレート的な何か
class Tree
attr_accessor :val, :level, :l, :r
def initialize(val, level, l, r)
@val = val; @level = level; @l = l; @r = r
end
def each
stack = []
stack.push self
explored = []
while !stack.empty?