2010-03-01から1ヶ月間の記事一覧

2010-03-30

21:55 @trotr "."特殊形式が、Javaの呼び出し専用というのがハッキリしていますし、あえて括弧使う理由も無さそうな気がしますね。無くてもそんなに分かりにくいとも思えませんし。 [in reply to trotr] 21:25 どっちが分かりやすいのだろう。括弧があるとつ…

clojureで無名関数に複数の引数を渡してみる

無名関数って、複数の引数渡せないかと思ったらそんな事無かった。 途中に引数が多かったり少ない場合なども試してみた。 %1とか%2が第1引数、第2引数に相当する。%&を使うと残りの引数をまとめてリストで受け取れる。 user=> (#(str %) 1) "1" user=> (#(st…

clojureで関数を合成してみる

2つ以上の関数をcomp関数を使って合成してみる。関数を合成した場合、右から左に関数が適用される。 最初の例は、引数で与えられた1をインクリメントしてから2乗する。 次の例は、引数で与えられた1を2乗してからインクリメントする。 user=> ((comp (fn [x]…

clojureで変数にドキュメントを付けてる見る

プログラミングClojureの144ページを読んでいたら、clojureでは変数にドキュメントを付けられると言うことが分かったので試してみた。 まずはuseをつかってライブラリを読み込み、変数を定義する。その時にドキュメント文字列も一緒にセット。それから、doc…

2010-03-28

21:04 @Iori_o なるほど。まだ、表面しか触れていないのに、これだけの力を感じるというのは凄いことだと思う。悟りの境地に達するにはまだまだ時間掛かりそうですが、頑張ります。 [in reply to Iori_o] 20:18 Clojureをこの1週間ほど勉強してきたが、これ…

clojureの関数定義で可変長引数を使ってみる

引数につく"&"って何だろうと思ったら、可変長引数を表す記号だったのか。 引数固定の場合、引数が1つの関数に2つ以上渡すとエラーになる。 user=> (defn func1 [arg] (str arg)) #'user/func1 user=> (func1 1) "1" user=> (func1 1 2) java.lang.IllegalAr…

2010-03-26

23:25 でも、自分じゃまだマクロとか書けない。 23:24 Lispのマクロというものが、やっと何となく理解できてきた。データと処理が一緒の構造のLispだからこそなんだな。説明だけ聞いても全然ピンと来なかったけど、clojureやっているうちに、そういうことな…

2010-03-25

21:31 Oracle Instant Clientを久しぶりに設定した。ファイルコピーして、リンク張って、環境変数設定すれば動くというお手軽クライアント。 07:12 source関数とshow関数は、docやfind-doc同様標準で使えるようになっている方が良い気がする。いちいち (use …

clojureでプラスとかマイナス演算子を変数に突っ込んでみる

実際には、clojureの場合、プラスとかマイナスは演算子ではなく関数です。 関数ということは変数に入れられます。 まずはプラスの場合。変数fにプラス関数を入れてみる。 user=> (def f +) (def f +) #'user/f user=> (f 100 200 300) (f 100 200 300) 600 …

clojureで関数を変数に突っ込んでみる

toUpperCaseというのは、JavaのStringクラスにあるメソッドです。 clojureでそれを使ってみる。 まずは普通に呼び出してみる。 user=> (.toUpperCase "hoge") "HOGE" 次に一度fという変数に入れてから、後から呼び出してみる。 user=> (def f #(.toUpperCase…

clojureのイコール関数を使っていろいろ比較してみる2

こんな比較をしてみた。 リスト、ベクタ、list関数、vec関数、vector関数を使って比較。 user=> (= [1 1] '(1 1) (list 1 1) (vec [1 1]) (vec '(1 1)) (vector 1 1)) true

clojureのイコール関数を使っていろいろ比較してみる1

引数が2つ以上でも普通に比較が可能。リストとベクタが混在していても比較が可能。 user=> (= 1 1) true user=> (= 1 1 1) true user=> (= 1 1 2) false user=> (= [1 1] [1 1]) true user=> (= [1 1] [1 2]) false user=> (= [1 1] '(1 1)) true user=> (= …

2010-03-23

23:06 はてなダイアリーにメールで投稿できるんだ。よし、勉強中のclojureのコードをガシガシ投稿しよう。 22:38 はてなのスーパーpre記法のシンタックス・ハイライトが、clojureに対応していた。いつの間に。http://bit.ly/9nChc5 #clojure 00:25 #clojure …

clojureでセットを使ってみる

clojure勉強中。 clojureで空セットを作ってみる hash-set関数の場合は、引数無しでも実行可能。 set関数の場合は、空のリストの指定が必要。 user=> #{} #{} user=> (hash-set) #{} user=> (set ()) #{} user=> (set '()) #{} user=> (set []) #{} clojure…

2010-03-24

22:29 Clojure関連の本って、amazonで見ても、洋書ですらまだ1冊しかないのか。5月に2冊目が出るみたいだけど、少ない。 http://bit.ly/cUDPhS 22:14 Clojureカンファレンスというイベントがもしもあったなら、略称はきっと「くろかん!」 22:12 @Masahito …

clojureでハッシュを使ってみる

ハッシュを使ってみる。 "{}"の中に、"key value"という順番で記述する。 user=> {:a 1 :b 2} {:a 1, :b 2} キーの値を取得する場合には、キーを関数、ハッシュを引数にする。 以下の場合、":a"というキーの値である"1"を取得している。 user=> (:a {:a 1 :b…

clojureでrangeを使ってみる

range関数を使って、一覧を取得する。 指定する引数によって初期値、ステップする数が変わる。 user=> (range 10) (0 1 2 3 4 5 6 7 8 9) user=> (range 2 10) (2 3 4 5 6 7 8 9) user=> (range 2 10 3) (2 5 8)

clojureで関数の定義

clojure勉強中。 関数を定義する user=> (defn func1 "This is a test function." [arg1 arg2 arg3] (println arg1 arg2 arg3)) #'user/func1 user=> (func1 "hoge" "foo" "bar") hoge foo bar nil 関数の説明を見る user=> (find-doc "func1") ------------…

バイナリファイルの先頭バイトをカットする方法

バイナリファイルの先頭バイトを切る必要があり、どうしたらよいか調べた結果、ddコマンドで行けることが分かった。 最初、cutコマンドを試したけど、バイナリファイルが相手ではうまく切ることが出来なかった。head、tailコマンドも同様に駄目だった。この…

clojure-modeのインストール

EmacsでClojureのソースを見やすくするために、clojure-modeを入れる。 clojure-modeをgitでダウンロード git clone git://github.com/jochu/clojure-mode.git .emacsの編集 ここでは~/opt/直下にgitでclojure-modeをダウンロードした場合を想定。 (nconc lo…

2010-03-22

20:18 参加希望です。RT @masa_edw: Clojure ハッカソンやろう! とりあえず4/10っていうことで日程だけ決めました。 http://atnd.org/events/3729 18:41 import式を使ってクラスを読み込むと、一番最後に取り込んだものを返すのか。プログラミングClojureの6…

diffコマンドの注意点

0以外はエラーと思い込んでいると、意図しない動きをする恐れがある。 diffコマンド、cmpコマンドでは以下のようになっている。 0・・・差分なし 1・・・差分あり 2・・・エラー

Clojureのインストール

Clojureをインストールする sudo port install clojure プログラミングClojureのサンプルコードをダウンロードする git clone git://github.com/stuarthalloway/programming-clojure.git

gitのインストール

MacPortsでgitをインストールする。 sudo port install git-core

2010-03-21

17:48 環境構築は諦めて、プログラミングClojureを読み始める。モチベーションが上がっているせいか楽しい。 14:52 本質とは違う部分でハマるとヒドく疲れる。 14:50 ClojureをSLIMEで動かそうともがきつつ半日過ぎた。なんとなくEmacs-LISPの世界に踏み込ま…

2010-03-20

23:31 MacPortsだとClojure入れるのも簡単なんだな。sudo port install clojure でOK。こういう時、Macの良さを実感する。あとはemacsのslimeと連携できるようになれば、とりあえずClojureを勉強できる環境が揃う。 22:18 おめでとうございます。最後の最後…

2010-03-19

16:36 140文字でコード書こうとするとちょっと無理がある。擬似コードであろうとも。 16:33 @nari3 今日、本屋行ったら置いてあったので、昨日の段階ではまだ置いてなかったのかもしれないです。昨日は最後に行ったところで見つけて、そこで買いました。 [in…

2010-03-18

23:59 テストが一段落したら猛烈にコードを書きたくなり、何故かpythonでコードを書いていた。データをpackしてsocketでサーバに送り込むスクリプト。元々Java用コードがあったけど、それを焼き直す。車輪の再発明ではあるが、勉強にはなる。 Powered by twt…

2010-03-16

23:31 福岡のaipカフェ。関東にも似たようなあるのかな? #wbs 23:24 WBSがIT特集の第二夜だ。 #wbs Powered by twtr2src

2010-03-17

21:35 Scalaスケーラブルプログラミングもまだ読み終わってないのに。また新しいScala本が。amazonで表紙の写真見たけど、帯に「TwitterもScalaが動かしている」なる文がある。TwitterってScalaだったんだ。 Powered by twtr2src