Short cut fusion Short cut fusion allows elimination of intermediate data structures using rewrite rules that can also be performed automatically during compilation. The two most popular instances are the foldr/build- and the destroy/unfoldr-rule for Haskell lists. foldr/build The foldr/build-rule eliminates intermediate lists produced by build and consumed by foldr, where these functions are defi
Fun with Type Functions Here is Version 3 of our paper (May 2010): Fun With Type Functions (version 3), Oleg Kiselyov, Ken Shan, and Simon Peyton Jones. This online version includes an Appendix that does not appear in the printed version. Slides (PDF) Source code which will appear in the proceedings of Tony Hoare's 75th birthday celebration. Abstract. Tony Hoare has always been a leader in writing
Modular type inference with local assumptions: OutsideIn(X) This epic 73-page paper (JFP style) brings together our work on type inference for type functions, GADTS, and the like, in a single uniform framework. Version 3 (camera ready copy for JFP) is very substantially revised compared to the May 2010 version. OutsideIn(X) - Modular type inference with local assumptions: PDF Related papers (const
Haskell semantics A static semantics for Haskell SL Peyton Jones and PL Wadler, (draft), Department of Computing Science, University of Glasgow, 1992. (Cited by 20) A Dynamic Semantics for Haskell Kevin Hammond and Cordelia Hall, (draft), University of Glasgow, 1992, 23 pages. Typing Haskell in Haskell Mark P. Jones, In Proceedings of the 1999 Haskell Workshop, Paris, France, October 1999. Publish
This article needs reformatting! Please help tidy it up.--WouterSwierstra 14:26, 9 May 2008 (UTC) A Practical Approach to Graph Manipulation by JeanPhilippeBernardy for The Monad.Reader Issue 5 BR Date(2005-07-08T20:48:51Z) Abstract. Tree-based data structures are easy to deal with in Haskell. However, working with graph-like structures in practice is much less obvious. In this article I present a
Haskell calls a couple of historical accidents its own. While some of them, such as the "number classes" hierarchy, can be justified by pragmatism or lack of a strictly better suggestion, there is one thing that stood out as, well, not that: Applicative not being a superclass of Monad. The topic has been discussed multiple times in the past (cf. link section at the very end). This article describe
Haskell I/O can be a source of confusion and surprises for new Haskellers - if that's you, a good place to start is the Introduction to IO which can help you learn the basics (e.g. the syntax of I/O expressions) before continuing on. While simple I/O code in Haskell looks very similar to its equivalents in imperative languages, attempts to write somewhat more complex code often result in a total m
A phantom type is a parameterised type whose parameters do not all appear on the right-hand side of its definition, e.g. from Control.Applicative: Here Const is a phantom type, because the b parameter doesn't appear after the = sign. Phantom types are useful in a variety of contexts: in Data.Fixed they are used with type classes to encode the precision being used, with smart constructors in GADTs
Papers See also research papers on type systems. A short description on generalised algebraic datatypes here as GHC language features. Another description with links on the archived Haskell' wiki. First-Class Phantom Types by James Cheney and Ralf Hinze Stratified type inference for generalized algebraic data types by François Pottier and Yann Régis-Gianas. It contains also a lot of links to other
While its name might suggest otherwise, the seq function's purpose is to introduce strictness to a Haskell program. As indicated by its type signature: it takes two arguments of any type, and returns the second. However, it also has the important property that it is always strict in its first argument. In essence, seq is defined by the following two equations: (See Bottom for an explanation of the
Overview An overview of the packages that provide Unicode symbols. Naming: A package X-unicode-symbols defines new symbols for functions and operators from the package X. All symbols are documented with their actual definition and information regarding their Unicode code point. They should be completely interchangeable with their definitions. Alternatives for existing operators have the same fixit
Handling Binary Data with Haskell Many programming problems call for the use of binary formats for compactness, ease-of-use, compatibility or speed. This page quickly covers some common libraries for handling binary data in Haskell. Bytestrings Everything else in this tutorial will be based on bytestrings. Normal Haskell String types are linked lists of 32-bit characters. This has a number of usef
Immutable arrays (module Data.Array.IArray) The first interface provided by the new array library, is defined by the typeclass IArray (which stands for "immutable array" and defined in the module Data.Array.IArray) and defines the same operations that were defined for Array in Haskell'98. The big difference is that it is now a typeclass and there are 4 array type constructors, each of which implem
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く