Jump to content
Wikipedia The Free Encyclopedia

Eff (programming language)

From Wikipedia, the free encyclopedia
Functional programming language
This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Eff" programming language – news · newspapers · books · scholar · JSTOR
(November 2019) (Learn how and when to remove this message)
This article relies excessively on references to primary sources . Please improve this article by adding secondary or tertiary sources.
Find sources: "Eff" programming language – news · newspapers · books · scholar · JSTOR
(November 2019) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Eff
Paradigms Multi-paradigm: functional, imperative
FamilyML: Caml: OCaml
Designed by Andrej Bauer, Matija Pretnar
First appearedMarch 5, 2012; 13 years ago (2012年03月05日)
Stable release
5.1 / October 19, 2021; 4 years ago (2021年10月19日)
Implementation languageOCaml
Platform x86-64
OS Cross-platform: macOS, Linux, Windows
License BSD 2-clause
Websitewww.eff-lang.org
Influenced by
OCaml

Eff is a general-purpose, high-level, multi-paradigm, functional programming language similar in syntax to OCaml which integrates the functions of algebraic effect handlers.[1] [2]

Example

[edit ]
effect Get_next : (unit -> unit) option
effect Add_to_queue : (unit -> unit) -> unit
let queue initial = handler
 | effect Get_next k ->
 ( fun queue -> match queue with
 | [] -> (continue k None) []
 | hd::tl -> (continue k (Some hd)) tl )
 | effect (Add_to_queue y) k -> ( fun queue -> (continue k ()) (queue @ [y]))
 | x -> ( fun _ -> x)
 | finally x -> x initial
;;

References

[edit ]
  1. ^ "Eff Programming Language". Eff-lang.org. Retrieved 2019年11月18日.
  2. ^ Bauer, Andrej; Pretnar, Matija (March 2012). Programming with Algebraic Effects and Handlers (PDF) (Report). Department of Mathematics and Physics, University of Ljubljana, Slovenia.
[edit ]
ML programming
Software
Implementations,
dialects
Caml
Standard ML
Dependent ML
Programming tools
Theorem provers,
proof assistants
Community
Designers
  • Lennart Augustsson (Lazy ML)
  • Damien Doligez (OCaml)
  • Gérard Huet (Caml)
  • Xavier Leroy (Caml, OCaml)
  • Robin Milner (ML)
  • Don Sannella (Extended ML)
  • Don Syme (F#)

  • Stub icon

    This programming-language-related article is a stub. You can help Wikipedia by expanding it.

    AltStyle によって変換されたページ (->オリジナル) /