60,392 research outputs found
In the Age of Web: Typed Functional-First Programming Revisited
Most programming languages were designed before the age of web. This matters
because the web changes many assumptions that typed functional language
designers take for granted. For example, programs do not run in a closed world,
but must instead interact with (changing and likely unreliable) services and
data sources, communication is often asynchronous or event-driven, and programs
need to interoperate with untyped environments.
In this paper, we present how the F# language and libraries face the
challenges posed by the web. Technically, this comprises using type providers
for integration with external information sources and for integration with
untyped programming environments, using lightweight meta-programming for
targeting JavaScript and computation expressions for writing asynchronous code.
In this inquiry, the holistic perspective is more important than each of the
features in isolation. We use a practical case study as a starting point and
look at how F# language and libraries approach the challenges posed by the web.
The specific lessons learned are perhaps less interesting than our attempt to
uncover hidden assumptions that no longer hold in the age of web.Comment: In Proceedings ML/OCaml 2014, arXiv:1512.0143
Know Your Audience: Middlebrow aesthetic and literary positioning in the fiction of P.G. Wodehouse
This essay strives to explain Wodehouse’s status as a popular writer, whose work is read with enjoyment by academics, critics and the general reader alike, as resulting from his particular positioning within the literary field, scrutinizing his relationship to both popular commercial fiction and avant-garde literary output. It argues that Wodehouse as a writer of enduring popularity and yet non-canonical status fits in with a range of critical discourses of the middlebrow, both modern and contemporary
Refinement Types for TypeScript
We present Refined TypeScript (RSC), a lightweight refinement type system for
TypeScript, that enables static verification of higher-order, imperative
programs. We develop a formal core of RSC that delineates the interaction
between refinement types and mutability. Next, we extend the core to account
for the imperative and dynamic features of TypeScript. Finally, we evaluate RSC
on a set of real world benchmarks, including parts of the Octane benchmarks,
D3, Transducers, and the TypeScript compiler
Introduction: Composition, Text, and Editing zu: James Joyce: A portrait of the artist as a young man
- …
