°£´ÜÇÏÁö¸¸ À¯¿ëÇÑ ¸ÅÅ©·ÎºÎÅÍ Á¤ÀÇÇÑ´Ù.
\def\Ignore#1{}
\def\Identity#1{#1}
\def\First#1#2{#1}
\def\Second#1#2{#2}
»ç¿ë·Ê
Taking first argument:
input : \First {first}{second}
output : first
Taking second argument:
input : \Second {first}{second}
output : second
Áø¸®°ªÀ» Á¤ÀÇÇÑ´Ù.
\let\True=\First
\let\False=\Second
À§ÀÇ Á¤ÀÇ´ë·Î¶ó¸é, Âü(\True)Àº µÎ°³ÀÇ ÀÎÀÚÁß Ã¹¹ø° ÀÎÀÚÀÇ °ªÀÌ°í, °ÅÁþ(\False)Àº µÎ¹ø° ÀÎÀÚÀÇ °ªÀÌ´Ù. ÀÌ°ÍÀÌ Àǹ̰¡ ÀÖÀ¸·Á¸é, ±× µÎ°³ÀÇ ÀÎÀÚ´Â T¿Í F À̾î¾ß ÇÑ´Ù. Áï \True¿Í \False°¡ ¶æÇÏ´Â Àǹ̴ ´ÙÀ½°ú °°´Ù.
input : \True TF
output: T
input : \False TF
output: F
µû¶ó¼ ¾ÕÀ¸·Î ³ª¿À´Â ¸ðµç ³í¸®¹® ´ÙÀ½¿¡´Â ¾ðÁ¦³ª µÎ°³ÀÇ ÀÎÀÚ TF°¡ ÀÖ´Â °ÍÀ¸·Î °£ÁÖÇÑ´Ù.
³í¸® ¿¬»êÀÚµéÀ» Á¤ÀÇÇÑ´Ù.
\def\And#1#2{#1{#2}\False}
\def\Or#1#2{#1\True{#2}}
\def\Twiddle#1#2#3{#1{#3}{#2}}
\let\Not=\Twiddle
¼³¸í: \And x y ÀÇ °ªÀº x°¡ ÂüÀ̸é, yÀÇ °ªÀÌ°í, x°¡ °ÅÁþÀ̸é, y °ª¿¡ °ü°è¾øÀÌ °ÅÁþÀÌ´Ù.
Áï ÂüÀº ù¹ø° ÀÎÀÚ¸¦ °ÅÁþÀ» µÎ¹ø° ÀÎÀÚ¸¦ ÃëÇÑ´Ù´Â °Í¿¡ Âø¾ÈÇϸé \AndÀÇ Á¤ÀÇ´Â À§¿Í °°Àº °ÍÀÌ°í, \Orµµ ¸¶Âù°¡ÁöÀÌ´Ù.
Áø¸®°ªµé°ú ¿¬»êÀÚµéÀ» Å×½ºÆ® Çغ¸ÀÚ.
True takes first of TF:
input : \True TF
output : T
False takes second of TF:
input : \False TF
output : F
Not true is false:
input : \Not \True TF
output : F
And truth table TrueTrue:
input : \And \True \True TF
output : T
And truth table TrueFalse:
input : \And \True \False TF
output : F
And truth table FalseTrue:
input : \And \False \True TF
output : F
And truth table FalseFalse:
input : \And \False \False TF
output : F
Or truth table TrueTrue:
input : \Or \True \True TF
output : T
Or truth table TrueFalse:
input : \Or \True \False TF
output : T
Or truth table FalseTrue:
input : \Or \False \True TF
output : T
Or truth table FalseFalse:
input : \Or \False \False TF
output : F
¿¹)