V: a language with extensible record accessors and a trait-based type system
DOI:
https://doi.org/10.22456/2175-2745.82772Keywords:
Functional Programming Languages, Records, TraitsAbstract
This article introduces the V language, a purely functional programming language with a novel approach to records.Based on a system of type traits, V attempts to solve issues commonly found when manipulating records in purely functional programming languages.
Downloads
References
MARLOW, S. Haskell 2010 Language Report. 2012.
REMY, D.; VOUILLON, J. Objective ML: A simple
object-oriented extension of ML. In: Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York, NY, USA: ACM, 1997. (POPL, ’97).
ABELSON, H. et al. Revised5 report on the algorithmic language scheme. Higher-order and symbolic computation, v. 11, n. 1, p. 7–105, 1998.
SYME, D. et al. The F# 2.0 language specification. [S.l.], 2010.
CZAPLICKI, E.; CHONG, S. Asynchronous functional reactive programming for GUIs. SIGPLAN Not., v. 48, n. 6, p. 411–422, 2013.
ODERSKY, M.; OTHERS. The scala language specification. Citeulike article id: 104333. 2004.
KMETT, E. lens: Lenses, Folds and Traversals. https://hackage.haskell.org/package/lens⟩. Accessed: 2018-05-07.
UNGAR, D. et al. Organizing programs without classes. Lisp Symb. Comput., v. 4, n. 3, p. 223–242, 1991.
NIERSTRASZ, O.; DUCASSE, S.; POLLET, D. Squeak by Example. 1. ed. [S.l.]: Square Bracket Associates, 2009. v. 1.
GOSLING, J. et al. The Java Language Specification, Java SE 8 Edition. 1st. ed. Boston, USA: Addison-Wesley Professional, 2014. v. 1.
HUDAK, P.; FASEL, J. H. A gentle introduction to Haskell. SIGPLAN Not., v. 27, n. 5, p. 1–52, 1992.
WADLER, P.; BLOTT, S. How to make ad-hoc polymorphism less ad hoc. In: Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York, NY, USA: ACM, 1989. (POPL, ’89).
PIERCE, B. C. Types and Programming Languages. 1st. ed. Cambridge, USA: The MIT Press, 2002. v. 1.
HASKELLWIKI. Record Access. https: //wiki.haskell.org/Record access. Accessed: 2018-08-06.
DOLAN, S.; MYCROFT, A. Polymorphism, subtyping, and type inference in MLsub. In: CASTAGNA, G. (Ed.). Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages. New York, USA: ACM, 2017. (POPL, ’17).
WADLER, P. Views: A way for pattern matching
to cohabit with data abstraction. In: Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages. New York, USA: ACM, 1987. (POPL, ’87).
GOTTLOB, G.; PAOLINI, P.; ZICARI, R. Properties and update semantics of consistent views. ACM Trans. Database Syst., v. 13, n. 4, p. 486–524, 1988.
BOHANNON, A.; PIERCE, B. C.; VAUGHAN, J. A. Relational lenses: A language for updatable views. In: Proceedings of the Twenty-fifth ACM SIGMOD-SIGACT- SIGART Symposium on Principles of Database Systems. New York, USA: ACM, 2006. (PODS, ’06).
FOSTER, J. N. et al. Combinators for bi-directional tree transformations: A linguistic approach to the view update problem. SIGPLAN Not., v. 40, n. 1, p. 233–246, 2005.
BOHANNON, A. et al. Boomerang: Resourceful lenses for string data. In: NECULA, G. (Ed.). Proceedings of
the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York, USA: ACM, 2008. (POPL, ’08).