�ޤ�Vol.33������ȯ�䤵��Ƥ��ʤ��Ȥ����Τˡ����Ǥ�Vol.34�θ��ƽñ¤¤Ë¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½àº£ï¿½ï¿½ï¿½ï¿½ï¿½Îºï¿½ï¿½ï¿½ï¿½Â¤Ï¤ï¿½ï¿½Îµï¿½ï¿½ï¿½ï¿½Î°ï¿½Ä¤ï¿½Haskell������Powered by Ph.D�ʸ���β������´�����ΤäƤɤ���?�פȲ�ʤ���פ�������ʬ�Ǹ����Τ�ʤ�����ष�����������˻ž夬�äƤ��Ƥ���Τò´¶¤ï¿½ï¿½ë¡£
Matz�ˤä�(2006-06-13)��:��Haskell�񤷤��Ǥ������
�֤����á���
�Ȥ����櫓�ǡ�ͽ��Ĥ��Ǥˡ�Haskell���Ruby���������ä��񤷤����Ȥ��ľ夲�����Ƥ���������
����ϡ��ʤ�Ȥ��äƤ�Proc���֥������Ȥ���
��Ruby���������ʤ���ʬ���Ĥ�����פ�ʹ���ơ�������˻פ�Ω�ĤΤ��������
�㤨�С�logbX�򥫥꡼������ɽ�����뤳�Ȥ�ͤ��Ƥߤ롣
���Ť����Ǿ����Ǥ⡢log()��ln()(log natural)�Ȥ����������Ƥ���Τǡ������Ǥ�log2��̾�դ��뤳�Ȥˤ��롣���ޤ��������ʤ�����Log()�Ȥ����haskell�����꤬�����뤷�����atan2()�Ȥ����������Ȥ��Τǡ�
�ޤ���Perl 5�ǡ�
sub log2{ my $b = shift; sub { my $x = shift; log($x)/log($b) } }
�Ȥ��Ȥ��ϡ�������
my $lg2 = log2(2); print $lg2->(16);
Perl6���ȡ���ä������������롣
sub log2($b){ sub($x){ log($x)/log($b) } } my $lg2 = log2(2); say $lg2.(16)
Python���ȡ�����ʤ���
import math def log2(b): return (lambda x: math.log(x) / math.log(b) ) # 2.3�ʹߤ� math.log(x, b) ��OK�������� lg2 = log2(2) print lg2(16)
��������lambda�ȸ���ʤ���Фʤ�ʤ��Ȥ�������Perl����Լ�������
����Ǥϡ�Ruby�Ǥ�?
def log2(b) return lambda{ |x| log(x) / log(b) } end
�ޤ�������ä�Python���ߤƤ��뤱�ɡ�math��import���ʤ�ʬ�褷�Ȥ��褦������Ϥ����ƤӽФ��Ȥ�����
lg2 = log2(2); p lg2(16);
��ư���ʤ��ΤǤ��롣
p log2.call(16)
�Ȥ��ʤ���Фʤ�ʤ��Τ���
����ǡ�Haskell�Ϥɤ����Ȥ����ȡ�
log2 b x = log x / log b
����������Ǥ��롣���꡼���ϥǥե���ȤʤΤ��������鷿����Ǥϡ�
log2 :: (Floating t) => t -> t -> t
�������Ȥ�������Ǥ����
lg2 = log2 2
�Ȥ������ˡ��¤�ľ��Ū��
lg2 :: t -> t
�Ǥ��뤳�Ȥ���ޤ롣������Haskell�ϡ���������ľ���Ϸ������Ǥè¤ï¿½Ë¤Ï¤ï¿½ï¿½ï¿½Ã¤Æ¤ï¿½ï¿½ï¿½ë¡£
����ϡ��Τ��˴�ñ��ľ��Ū����ľ���٤ǹԤ��ȻĤ��perl, python, ruby�Ȥ��ä�����ˤʤ�Ȼפ���
�¤ϡ����μ�ư���꡼���ȷ������� Perl6 �Ǥ���������뤳�Ȥ���ޤäƤ��롣
sub log2($b,$x){ log($x)/log($b) } my $lg2 = &log2.assuming(2); say $lg2.(16)
Haskell����٤�Ȥ��ɤ��������������뤬������� Perl6 �������ޤǤ�դ���ϼ�³��������Τդ�򤷤ơ�ɬ�פȤ���Ф��ĤǤ�ؿ����ˡֲ�����פȤ����ݥ������ˤ��뤫������¤� Perl6 �ϡ��֥�����פ� Ruby ����Ǥ�¿�����Ǥ��뤬���֤Ϥ�錄�פ� Haskell ����Ǥ�¿�����Ǥ���Τ���
Ruby�ǤϤ����դɤ����Ƥ����Τ�������....
Dan the Multilingual
from math import log
log2 = lambda x:(lambda y: log(y, x))
�������뤤�ϡ�
from math import log
def log2(x):
def xlog2(y):
return log(y, x)
return xlog2
�Τۤ���������äȥ��쥤����ġġ�
�������¤�̵���äǤ����ʤ�����