; <@({. ,. }.)\.@i. 5


(#~ </"1) (#: i.@(*/)) 2 $ 5

Henry Rich

On 9/26/2015 9:24 AM, 'Jon Hough' via Programming wrote:
Sorry, the second verb should be

getEdges =: 3 : 0
if. 1 > # y do.

else.
h =. 1{.y
t =. 1}.y
((h&,)"0 t ), getEdges t
end.
)

(changed getNodes to getEdges)


--------------------------------------------
On Sat, 9/26/15, 'Jon Hough' via Programming <programm...@jsoftware.com> wrote:

  Subject: [Jprogramming] Generate Complete Graphs
  To: "Programming Forum" <programm...@jsoftware.com>
  Date: Saturday, September 26, 2015, 10:16 PM
I have a couple of verbs to represent
  a complete (undirected) graph as a list of edges. Clearly
  there are "N choose 2" edges that need to be generated. This
  is my code
complete =: 3 : 0
  nodes =. i. y
  getEdges nodes
  )
getEdges =: 3 : 0
  if. 1 > # y do.
else.
  h =. 1{.y
  t =. 1}.y
  ((h&,)"0 t ), getNodes t
  end.
  )
e.g. I can get the 10 edges of the graph K5 by doing complete 5 My above code is ugly however. To be specific, it seems too
  imperative for J,  and the first part of the if. do. in
  getEdges doesn't return anything which seems ugly.
I would like to know if there is a more J-like, terse way to
  do this.
Regards,
  Jon
  ----------------------------------------------------------------------
  For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm


----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to