Abstract
The interactive data language (IDL) is a dynamically typed array processing language widely used for the analysis of images and other scientific data. It operates in two basic modes. The first is a command line mode for interactive analysis and visualization of scientific data. The second is as a development platform for end-user applications which process scientific data. This paper details the introduction of higher-order functions to the core IDL. The purpose of these constructs is to increase the productivity of the interactive IDL user. Historically, interactive users of IDL have been scientists and engineers engaged in the exploration of new data. The addition of functional constructs aids these users by allowing them to accomplish, in a few lines of code, what might otherwise require writing a custom function which is then compiled and used. The constructs described were implemented as C language extensions to core IDL. The IDL extensions themselves are available for download at http://www.ittvis.com/idl/hof/.
Similar content being viewed by others
References
McNamara B, Smaragdakis Y (2000) Functional programming in C++. ICFP, Montreal
Läufer K (1995) A framework for higher-order functions in C++. In: Proceedings of the conference on object-oriented technologies. Monterey, California
Odersky M, Wadler P (1997) Pizza into Java: Translating theory into practice. In: Proceedings of the 24th ACM Symposium on principles of programming languages. Paris, France
Finkel R (1995) Advanced programming language design. Addison Wesley, Reading
Steele G, Gabriel R (1993) The Evolution of Lisp. ACM SIGPLAN Notices 28(3): 231–270
Backus J (1978) Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs. Commun ACM 21(8): 613–641
Hughes J (1989) Why functional programming matters. Comput J 32(2): 98–107
van Rossum G (2008) Python language website, http://www.python.org. Accessed 20 Mar 2008
Abelson H, Sussman G, Sussman J (1996) Structure and Interpretation of Computer Programs. McGraw-Hill, NY
Sperber M et al (2007) Revised6 report on the algorithmic language scheme
Järvi J, Powell G (2000) The lambda library : lambda abstraction in C++. Turku Centre for Computer Science. Technical report, p 378
Carasso A, (2006) APEX blind deconvolution of color Hubble space telescope imagery and other astronomical data. Opt Eng 45(10)
HubbleSite, http://hubblesite.org/. Accessed 20 Mar 2008
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kneusel, R.T. Extending interactive data language with higher-order functions. Innovations Syst Softw Eng 4, 329–339 (2008). https://doi.org/10.1007/s11334-008-0068-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-008-0068-x