<P> This says that an expression is either a number, a product of two expressions, or a sum of two expressions . By recursively referring to expressions in the second and third lines, the grammar permits arbitrarily complex arithmetic expressions such as (5 * ((3 * 6) + 8)), with more than one product or sum operation in a single expression . </P> <P> A coinductive data definition is one that specifies the operations that may be performed on a piece of data; typically, self - referential coinductive definitions are used for data structures of infinite size . </P> <P> A coinductive definition of infinite streams of strings, given informally, might look like this: </P> <P> This is very similar to an inductive definition of lists of strings; the difference is that this definition specifies how to access the contents of the data structure--namely, via the accessor functions head and tail--and what those contents may be, whereas the inductive definition specifies how to create the structure and what it may be created from . </P>

What do you mean by recursion in data structure