Code for generating radical molecules. Not very functional: so it's time for
improvement.
radicalGen 4
┌─────┬────────┬──────────────┬───────────────────────────────────────┐
│┌───┐│┌──────┐│┌────────────┐│┌──────────────────┬──────────────────┐│
││┌─┐│││┌────┐│││┌───┬──────┐│││┌───┬────────────┐│┌──┬──────┬──────┐││
│││H│││││CHHH│││││CHH│┌────┐│││││CHH│┌───┬──────┐│││CH│┌────┐│┌────┐│││
││└─┘│││└────┘││││ ││CHHH││││││ ││CHH│┌────┐││││ ││CHHH│││CHHH││││
│└───┘│└──────┘│││ │└────┘│││││ ││ ││CHHH│││││ │└────┘│└────┘│││
│ │ ││└───┴──────┘││││ ││ │└────┘│││└──┴──────┴──────┘││
│ │ │└────────────┘│││ │└───┴──────┘││ ││
│ │ │ ││└───┴────────────┘│ ││
│ │ │ │└──────────────────┴──────────────────┘│
└─────┴────────┴──────────────┴───────────────────────────────────────┘
part3=: [: ;(<@([(],.(-+/"1))],.]+[:i.]-~1+<.@-:@-)"0 i.@>:@<.@%&3)
nextRadical=: 3 :0
pp=. part3 1-~#y
z=. i.0
for_p. pp do.
'i j k'=. p
select. #. 2=/\p
case. 0 do.
c=. ,{ p{y
case. 2 do.
c=. ;<@([:,{)"1 (k{y),.~ (<"0 ;i{y),.<\.;j{y
case. 1 do.
c=. ;<@([:,{)"1 (i{y),. (<"0 ;j{y),.<\.;k{y
case. 3 do.
c=.<"1;<@(>"0@{)"1;<@({.;"_1({.;<@])\.)\. ;i{y
end.
d=. (1 i.~ ('H'-.@-:])S:0)&.> c
z=. z,d ([:(#~a:~:])('C',]S:0@{.);}.)`('C';])@.(0=[)&.> c
end.
y,<z
)
radicalGen=: nextRadical^:((0>.1-~])`((<<<'H')"_))
--
Met vriendelijke groet,
@@i = Arie Groeneveld
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm