教会のブール値
A 教会ブールは戻って、その関数でx
真のためにとy
偽のためには、どこx
の関数の最初の引数で、y
関数の第二引数です。さらに機能が表現これらの関数から構成することができるand
not
or
xor
とimplies
の論理演算を。
チャレンジ
教会のブール値および構築and
not
or
xor
やimplies
お好みの言語で教会の門を。and
or
そしてxor
、2つの関数(Churchブール値を表す)を取り、関数(別のChurchブール値を表す)を返す必要があります。同様に、not
それがとる関数を反転し、implies
ゲートがブール値を実行する必要があります。implies
が2番目の。
得点
教会を作成するために必要なすべてのコードの全長、true
およびfalse
あなたの言語and
not
or
xor
とimplies
教会の門は、機能の名前を除きます。(たとえば、false=lambda x,y:y
Pythonでは13バイトになります)。これらの名前は、コードの後半で再利用でき、そのゲートの合計バイト数に1バイトをカウントします。
擬似コードの例:
作成する関数は、コードの後半で呼び出すことができるはずです。
true(x, y) -> x
false(x, y) -> y
and(true, true)(x, y) -> x
and(true, false)(x, y) -> y
# ... etc
true([x, y])
、and([true, true])([x, y])
)?