Erlang メモ
いくつか
** mapっぽいこと
Python Code
> [N*2 for N in range(10) if N % 2 == 0] [0, 4, 8, 12, 16]
Erlang Code
1. [2*N || N <- [0,1,2,3,4,5,6,7,8,9], N rem 2 =:= 0]. [0,4,8,12,16]
ただやっぱ Erlang のほうが柔軟っぽい
1. [X+Y || X <- [1,2], Y <- [2,3]]. [3,4,4,5]
この場合のリスト包括が 1+2, 1+3, 2+2, 2+3 に展開されるみたい。
** モジュールの作成
スッカリ作り方忘れてて適度にはまってた。
join 関数のようなもの作ってみる。
ファイル名: recursive.erl
-module(recursive). -export([join/2]). join(N, [{K,V}]) -> K ++ "=" ++ V; join(N, [{K,V}|Array]) -> K ++ "=" ++ V ++ N ++ join(N, Array).
一つ目のjoin
関数の末尾は「;」になる。同じ名前の関数があるから?
実行例
1> recursive:join("&", [{"A", "1"},{"B", "2"},{"C", "3"}]). "A=1&B=2&C=3"
おもむろに http と erlang で書いてみる
Erlang でどうやって単体ファイルで実行させるんだよ、と思ったらどうも考え方が違うみたいで、他の言語は「動くファイルからライブラリを書いていく」けれど、コヤツは「ライブラリを書いていって最後にアプリを書く」という手順みたいなので、入門本などには書いてない気配なるへそ。
では http を。
1> inets:start(). ok 2> {ok, {{Version, 200, ReasonPhrase}, Headers, Body}} = 2> httpc:request(get, {"http://www.erlang.org", []}, [], []). {ok,{{"HTTP/1.1",200,"OK"}, [{"date","Sat, 19 Jan 2013 14:41:02 GMT"}, {"server","inets/5.7.1"}, {"content-length","8262"}, {"content-type","text/html; charset=utf-8"}, {"set-cookie", "eptic_cookie=erlangorg@hades-13558486025965129729; path=/"}], "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/
そんな訳で、簡単お気楽に取ってこれます。
参考
おもむろに Erlang を触ってみる at MacOSX
タイトル通り。
環境:
1. Mac OSX 10.7.5
2. Homebrew 0.9.3
インストール
簡単。コマンドで。
$ sudo brew install erlang
で完了。
そして私はここで書くのに力尽きた
とても参考になったブログや記事
http://d.hatena.ne.jp/kakipo/20081017/1224229752
http://blog.overlasting.net/2007-05-09-1.html
http://docs.basho.com/riak/1.2.0/tutorials/installation/Installing-Erlang/#Installing-on-Mac-OS-X
iPod Touch 欲しい!
iPod touch 欲しい! id:hatenablog
http://staff.hatenablog.com/entry/iphone-app-campaign
だ、そうです。
今、インストールしてみて使っているのですが、iPadには対応していないので、対応のほどよろしくお願い申し上げます。
わりと、iPadでiPhoneアプリを使うのってしんどいのですはい。
■
てすっとー
マダニに噛まれたら皮膚科にいきませう、という啓蒙 / “マダニの恐怖!セカンドインパクト” htn.to/o81WGW
— a_yasuiさん (@a_yasui) 6月 30, 2012
Relative to Group/Project
Xcode3.2以降には、ソースパスを「Absolute Path」「Relative to Group」「Relative to Project」などなど選べます。
で、Relative to Groupにしててハマったのでメモ。
- Relative to Group
- プロジェクトファイルから、そのソースコードのグループ+ソースコードの相対パス
例えば、a->b->ATClasse.m とXcode上でグループの設定をしており、ATClasse.m は「../Classes/ATClasse.m」としている場合、コンパイル時は「b/../Classes/ATClasse.m」のファイルをコンパイルする。 - Relative to Project
- プロジェクトファイルから、そのソースコードの相対パス
例えば、a->b->ATClasse.mとXcode上でグループの設定をしており、ATClass.mは「../Classes/ATClasse.m」としている場合、コンパイル時は「../ATClasse.m」をコンパイルする。