Since 14.Jan.2009:08:29
プログラミングと絵のブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Erlangではfor文が使えないようです(! よって別に関数を作って再帰処理します まぁ不便というよりは ループの中身は別関数に分けるのが元々推奨されてるし 再帰処理のベタなプログラムといえば 階乗と相場が決まっているのでErlangで階乗のプログラム -module(factorial). -export([start/1]). start(N) when is_integer(N) -> factorial(N, 1). factorial(0, Res) -> Res; factorial(N, Res) -> factorial(N-1, Res*N). 以上 最初の2行は前の記事を見てもらうとして 4行目のwhen is_integer(N)は前に言ったガードというもの これに一致したときだけ処理をする is_integer(N)はもちろん整数かどうかの判定です 1つ目のfactorialは0になったらResを返す 2つ目のfactorialはNを1ずつ減らして Resに今のNを掛けていく関数 いちいち引数に前のループの結果を渡しているのは、 前の結果を保持する必要がなくするため Erlangでは末尾再帰 (再帰に処理を渡した後、渡す側の関数でもう処理がない再帰) にすれば、渡す側の関数は破棄されるので 引数に渡しておけば前の分のメモリ保持が必要ないから 必要最低限のメモリで再帰処理ができるらしいよ まぁループないといってもmapとかforeachとかで Listは簡単に処理できるからほとんど ループなんて使わなくても処理できるけどね
PR
				Comment
				
					カレンダー				
				| 09 | 2025/10 | 11 | 
| S | M | T | W | T | F | S | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
					ブログ内検索				
				
					プロフィール				
				
HN:
	
uguisu_an
年齢:
	
36
性別:
	
男性
誕生日:
	
		1989/08/20	
自己紹介:
	
				基本的にテキトー
					カテゴリー				
				
					最新記事				
				(10/30)
(08/12)
(08/12)
(07/05)
(06/29)
				
					最新コメント				
				[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
				
					最新トラックバック				
				
					アクセス解析				
				
					フリーエリア				
				
					P R				
				