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

Reply via email to