Bx=S(Kx)
S(Kx)yz = Kxz(yz) = x(yz)なので、
BxとしているところはS(Kx)とできる。
よって、Dの場合なら、
D = BB = S(KB)
また、addの場合なら、
add = BSD = BS(BB) = S(KS)(S(KB))
iで書き直すと
add = i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))))(i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))))(i(i(i(i)))))));
従来版
add = i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))))(i(i(i(i))))(i(i(i(i(i)))))(i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))))(i(i(i(i))))(i(i(i(i(i))))(i(i(i(i)))(i(i(i(i(i))))))(i(i(i(i))))));
1文字の二項演算子で空いているもの
% cat >t.hs main = putStr $ unlines [":t ("++[c]++")"|c<-['!'..'~']] % runghc t.hs | head 1 :t (!) % runghc t.hs | ghci 2>&1 | grep 'scope: `[^A-Za-z]' <interactive>:1:0: Not in scope: `!' <interactive>:1:0: Not in scope: `#' <interactive>:1:0: Not in scope: `%' <interactive>:1:0: Not in scope: `&' <interactive>:1:0: Not in scope: `?'
というわけで、(!),(#),(%),(&),(?)の5つ。
ただし、Preludeではないが
(!)がData.Array,Data.Map,Text.Htmlに、
(%)がData.Ratioに、
(&)がData.Graph.Inductive.Graphに定義されているようだ。
(#)と(?)はどこにも使われてなさそう。