�Ȥ����櫓�Ǥ����餻�Ǥ���

evalpark��Swift�����ष�ޤ�����

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))
}