
�Ȥ����櫓�Ǥ����餻�Ǥ���
evalpark��Swift�����ष�ޤ�����
Unfortunately lang/#swift of @freebsd ports is currently broken. But the fix was relatively easy so I brewed a package/1
— Dan Kogai (@dankogai) March 19, 2017
ports��lang/swift�����줿�ޤ����֤���Ƥ����ΤǤ�����������ǽ������Ĥ�pkg���������ष�ޤ������긵��FreeBSD:11:amd64
��Ȣ�ˤ����व�������ͤϡ��ʲ������ΤǹԤ��ޤ���
# pkg install -A e2fsprogs-libuuid icu libedit libxml2 perl5 sqlite3 # fetch https://eval.dan.co.jp/friends/packages/All/swift-2.2.1_4.txz # pkg add ./swift-2.2.1_4.txz
�С�������2.2.1��1�������ǡ�linker��̤������swiftc
��ư���ʤ��ȤϤ�����swift
���ޥ�ɤϥ�����ץȤȤ��Ƥ�REPL�Ȥ��Ƥâ¤ï¿½ï¿½ï¿½ï¿½È»È¤ï¿½ï¿½Æ¤Þ¤ï¿½ï¿½ï¿½ï¿½ñ¤¤¤Æ³Ð¤ï¿½ï¿½ï¿½Swift�����Υ����ɥ���ץ�ϤۤȤ��Τޤ޹Ԥ��ޤ�����
#!/usr/local/bin/swift
func recall<T,R>(f:((T->R),T)->R)->T->R {
var r:(T->R)!
r = { n in f(r,n) }
return r
}
let fact = recall { $1 <= 1 ? 1 : $1 * $0($1-1) }
for i in (0...20) {
print(fact(i))
}
�ȤϤ��������ޤǸ���pkg�����ۤ����ޤǤ�����pkg�Ǥ���Τ�����ˤߤƤƤ��������ޤ���
Dan the Park Ranger Thereof
�ɵ�2017.04.29 Swift��3.1�˾夲�ޤ��������recall
�Υ����ɤϰʲ����̤�ñ¤´ï¿½ï¿½ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½Æ°ï¿½ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½
#!/usr/local/bin/swift
func recall<T,R>(_ f:@escaping (((T)->R),T)->R)->(T)->R {
var r:((T)->R)!
r = { n in f(r,n) }
return r
}
let fact = recall { $1 <= 1 ? 1 : $1 * $0($1-1) }
for i in (0...20) {
print(fact(i))
}
���Υ֥����˥����Ȥ���ˤ�����������ɬ�פǤ���
��������������
���ε����ˤϵ��ĥ桼�����������Ȥ��Ǥ��ޤ���