Wide Periodic Table by nobsun

import List
main=putStr$unlines[d 1#c#d 1,(1?1)#c#(2?2),(He?He)#c#(H?H),d 2#b#d 6,(3?4)#b#(5?10),(Li?Be)#b#(B?Ne),d 2#b#d 6,(11?12)#b#(13?18),(Na?Mg)#b#(Al?Ar),d 2#a#d 16,(19?20)#a#(21?36),(K?Ca)#a#(Sc?Kr),d 2#a#d 16,(37?38)#a#(39?54),(Rb?Sr)#a#(Y?Xe),d 32,(55?86),(Cs?Rn),d 32,(87?118),(Fr?Uuo),d 32]
(!)=replicate
x#y=x++y
i?j="|"#f(intersperse"|"[g(show k)|k<-[i..j]])#"|"
f=concat
s=(!' ')
a=s 55
b=s 95
c=s 119
d n='+':f(n!"---+")
g[c]|elem c['A'..'Z']=g$[c]++" "
g"Am"=g"am"
g s=r.take 3.(#"  ").r$s
r=reverse
data A=He|H|Li|Be|B|C|N|O|F|Ne|Na|Mg|Al|Si|P|S|Cl|Ar|K|Ca|Sc|Ti|V|Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr|Rb|Sr|Y|Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I|Xe|Cs|Ba|La|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu|Hf|Ta|W|Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn|Fr|Ra|Ac|Th|Pa|U|Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Uut|Uuq|Uup|Uuh|Uus|Uuo deriving(Enum,Show)

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return to the top page