www.digitalmars.com         C & C++   DMDScript  

D - Practical approach to generic programming

reply Mark Evans <Mark_member pathlink.com> writes:
http://www.research.microsoft.com/~simonpj/papers/hmap/

'We describe a design pattern that for writing programs that traverse data
structures built from rich mutually-recursive data types. Such programs often
have a great deal of "boilerplate" code that simply walks the structure, hiding
a small amount of "real" code that constitutes the reason for the traversal.

'Our technique allows most of this boilerplate to be written once and for all
(perhaps even mechanically generated), leaving the programmer free to
concentrate on the important part of the algorithm. These generic programs are
much more robust to data structure evolution because they contain many fewer
lines of type-specific code. 

'Our approach is simple to understand, reasonably efficient, and it handles all
the data types found in conventional functional programming languages. It makes
essential use of rank-2 polymorphism, an extension found in some implementations
of Haskell.'
Feb 11 2003
parent reply "Sean L. Palmer" <seanpalmer directvinternet.com> writes:
Truly an idea whose time has come.  Now if I could just view .ps more
easily...

Sean

"Mark Evans" <Mark_member pathlink.com> wrote in message
news:b2chih$2a1m$1 digitaldaemon.com...
 http://www.research.microsoft.com/~simonpj/papers/hmap/

 'We describe a design pattern that for writing programs that traverse data
 structures built from rich mutually-recursive data types. Such programs

 have a great deal of "boilerplate" code that simply walks the structure,

 a small amount of "real" code that constitutes the reason for the

 'Our technique allows most of this boilerplate to be written once and for

 (perhaps even mechanically generated), leaving the programmer free to
 concentrate on the important part of the algorithm. These generic programs

 much more robust to data structure evolution because they contain many

 lines of type-specific code.

 'Our approach is simple to understand, reasonably efficient, and it

 the data types found in conventional functional programming languages. It

 essential use of rank-2 polymorphism, an extension found in some

 of Haskell.'

Feb 11 2003
parent Arjan Knepper <ask me.to> writes:
GSview is a free ps viewer, might need the also free GhostScript
http://www.cs.wisc.edu/~ghost/

Sean L. Palmer wrote:
 Truly an idea whose time has come.  Now if I could just view .ps more
 easily...
 
 Sean
 
 "Mark Evans" <Mark_member pathlink.com> wrote in message
 news:b2chih$2a1m$1 digitaldaemon.com...
 
http://www.research.microsoft.com/~simonpj/papers/hmap/

'We describe a design pattern that for writing programs that traverse data
structures built from rich mutually-recursive data types. Such programs

often
have a great deal of "boilerplate" code that simply walks the structure,

hiding
a small amount of "real" code that constitutes the reason for the

traversal.
'Our technique allows most of this boilerplate to be written once and for

all
(perhaps even mechanically generated), leaving the programmer free to
concentrate on the important part of the algorithm. These generic programs

are
much more robust to data structure evolution because they contain many

fewer
lines of type-specific code.

'Our approach is simple to understand, reasonably efficient, and it

handles all
the data types found in conventional functional programming languages. It

makes
essential use of rank-2 polymorphism, an extension found in some

implementations
of Haskell.'


Feb 12 2003