Skip to main content
Log in

Extending interactive data language with higher-order functions

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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/.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. McNamara B, Smaragdakis Y (2000) Functional programming in C++. ICFP, Montreal

    Google Scholar 

  2. Läufer K (1995) A framework for higher-order functions in C++. In: Proceedings of the conference on object-oriented technologies. Monterey, California

  3. 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

  4. Finkel R (1995) Advanced programming language design. Addison Wesley, Reading

    Google Scholar 

  5. Steele G, Gabriel R (1993) The Evolution of Lisp. ACM SIGPLAN Notices 28(3): 231–270

    Article  Google Scholar 

  6. 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

    Article  MATH  MathSciNet  Google Scholar 

  7. Hughes J (1989) Why functional programming matters. Comput J 32(2): 98–107

    Article  Google Scholar 

  8. van Rossum G (2008) Python language website, http://www.python.org. Accessed 20 Mar 2008

  9. Abelson H, Sussman G, Sussman J (1996) Structure and Interpretation of Computer Programs. McGraw-Hill, NY

    MATH  Google Scholar 

  10. Sperber M et al (2007) Revised6 report on the algorithmic language scheme

  11. Järvi J, Powell G (2000) The lambda library : lambda abstraction in C++. Turku Centre for Computer Science. Technical report, p 378

  12. Carasso A, (2006) APEX blind deconvolution of color Hubble space telescope imagery and other astronomical data. Opt Eng 45(10)

  13. HubbleSite, http://hubblesite.org/. Accessed 20 Mar 2008

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ronald T. Kneusel.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-008-0068-x

Keywords

Navigation