import Char
import List
f '+'=1
f '-'=(-1)
f ' '=0
f c=ord c
g[]=[]
g(x:xs)=f x:g xs
h n|n==(-1)='\31'|n==0=' '|n==1='!'|1>0=chr n
main=do cs<-getContents
putStr$map h$map (foldl(+)0)$transpose$map g$lines cs
【修正後1】157バイト:まだ transpose などは綺麗に消せそうだ。。。
import Char
import List
f '+'=1
f '-'=(-1)
f ' '=0
f c=ord c
h(-1)='\31'
h 0=' '
h 1='!'
h n=chr n
main=interact$map h.map((foldl(+)0).map f).transpose.lines
【修正後2】151バイト:
import Char
import List
f '+'=1
f '-'=(-1)
f ' '=0
f c=ord c
h(-1)='\31'
h 0=' '
h 1='!'
h n=chr n
main=interact$map(h.foldl(+)0.map f).transpose.lines
【修正後3】147バイト:
import Char
import List
f '+'=1
f '-'=(-1)
f ' '=0
f c=ord c
h n=("\31 !"++[chr n])!!min(n+1)3
main=interact$map(h.foldl(+)0.map f).transpose.lines