at_yasu's blog

ロード的なことを

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には対応していないので、対応のほどよろしくお願い申し上げます。

わりと、iPadiPhoneアプリを使うのってしんどいのですはい。

f:id:at_yasu:20121217180412j:plain

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」をコンパイルする。