Misplaced Pages

Fudgets

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Fudgets
Original author(s)Thomas Hallgren,
Magnus Carlsson
Initial releaseJune 1993; 31 years ago (1993-06)
Stable release0.18.4 / June 2023; 1 year ago (2023-06)
Written inHaskell
Operating systemPOSIX compatible: Unix, Unix-like, Linux, macOS via XQuartz
PlatformIA-32, x86-64
Available inEnglish
TypeGUI toolkit
Licensefreeware non-commercial

In computing, Fudgets is a graphical user interface toolkit for the functional programming language Haskell and the X Window System. Fudgets makes it easy to create client–server model applications that communicate via the Internet.

Most of the work on Fudgets was done in 1991-1996 by Thomas Hallgren and Magnus Carlsson.

The authors claim that many of the advantages of Fudgets come from it being programmed in a lazy functional programming language.

The main entity of toolkit is fudget (implemented on low level through stream processors) which has its own input and output. Fudgets can be composed in parallel or sequence, yielding new fudget which can be used in code as any other fudget.

Example

factorialF  = stdoutF >==< mapF (show . factorial . read) >==< stdinF
factorial   :: Integer -> Integer
factorial n = product 

The code is self-describing considering that >==< is sequential fudget plumbing and mapF is fudget that takes a function of one argument and makes a fudget which output is input applied to that function. Fudget composition must be read from right to left, as a simple function composition. Now you can simply write:

main = fudlogue factorialF

compile and run. For every given integer value it will print its factorial.

License

The software license of Fudgets claims that this software is freeware for non-commercial use only.

References

  1. Hallgren, Thomas; Carlsson, Magnus (1995). "Programming with Fudgets". In Jeuring, Johan; Meijer, Erik (eds.). Advanced Functional Programming. Lecture Notes in Computer Science. Vol. 925. Berlin, Heidelberg: Springer. pp. 137–182. doi:10.1007/3-540-59451-5_5. ISBN 978-3-540-49270-2.
  2. Reid, Alastair; Singh, Satnam (1994). "Implementing Fudgets with Standard Widget Sets". Written at Ayr, Scotland. In O’Donnell, John T.; Hammond, Kevin (eds.). Functional Programming, Glasgow 1993: Proceedings of the 1993 Glasgow Workshop on Functional Programming, 5–7 July 1993. Workshops in Computing. London: Springer. pp. 222–235. doi:10.1007/978-1-4471-3236-3_18. ISBN 978-1-4471-3236-3. Retrieved 2023-10-26.
  3. Hallgren, Thomas; Carlsson, Magnus (June 6, 2023). "Fudgets Home Page". altocumulus.org. Retrieved October 25, 2023.
  4. Carlsson, Magnus; Hallgren, Thomas (1993-07-01). "Fudgets: A graphical user interface in a lazy functional language". Proceedings of the conference on Functional programming languages and computer architecture. ACM. pp. 321–330. doi:10.1145/165180.165228. ISBN 978-0-89791-595-3. S2CID 9943994.
  5. Burton, F. Warren (1999). "Advanced Functional Programming: Lecture Notes in Computer Science 925 edited by Johan Jeuring and Erik Meijer, Springer-Verlag, 1995". Journal of Functional Programming. 9 (1): 105–111. doi:10.1017/S0956796899223246. ISSN 1469-7653.

External links

Haskell programming
Software
Implementations
(features)
Dialects
Electronic design
Libraries
Package managers
Windowing systems
Web frameworks
Book
Community
Eponym
Italics = discontinued
  • ° = Open-source software
    Book Category:Family Category:Software

  • Stub icon

    This computer-library-related article is a stub. You can help Misplaced Pages by expanding it.

    Categories: