60,392 research outputs found

    In the Age of Web: Typed Functional-First Programming Revisited

    Full text link
    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

    Get PDF
    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

    On Textual Criticism and Editing

    Get PDF

    Refinement Types for TypeScript

    Full text link
    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
    corecore