ついに、Write Yourself a Scheme in 48 Hoursをやりました。 分ったこと 以下のことが、なんとなく分ったり、少なくともどう使うのかを体験できました。 エラー処理 正常系の値と異常系の値を包含する型を作って、Scheme の関数はそれを返すようにする モナド変換子 クロージャの実装 コードの問題点 ファイルとして置いてあるコードですが、以下のような小さな問題があります。 2箇所Texのコマンドが残っている parseString = do char ;\textcolor{string}{\texttt{'"'}}; cdr の定義が間違っている cdr [DottedList (_ : xs) x] = return $ DottedList xs x cdr [DottedList [xs] x] = return x は誤りで、正しくはこう。 cdr [
Il y a du thé renversé au bord de la table Adventure! Excitement! Wonders! Random thoughts by David Rajchenbach-Teller! My public key A few days ago, someone asked me whether there was more to OCaml Batteries Included than Lazy Lists. The answer is a definite yes. If you have looked at the repository recently, you may have seen that there is plenty more waiting for testing and for a release. Let’s
A Blog about Software Development. Software development is the act of developing a software product. Overview I have never had much affinity for writing (in natural language); I have grown up and enjoy programming and that is what I continue to do 20 years later. But I really wanted to get this blog entry out and it helped me rethink and reframe how I look at a particular piece of code. So I am go
Introduction Monads in functional programming provide a framework for aspect-aware computations to be composed to build higher-level aspect-aware computations. An aspect-aware computation is some basic computation that has been enhanced, augmented, or, more generally, just transformed, to become aware of some generic concern. Consider, for example, the well-known maybe monad. This monad pr
1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい
Introduction Welcome to the home of the ned text editor. ned is the masters' thesis project that I, Nikolai Weibull, am currently (fall 2003) working on. We are going to try to create a new regular expression syntax, and try adopting regular relations to the world of text editors. Documentation While there is no documentation for ned itself, you can find a lot of reference material I have gathered
LISP has survived for 21 years because it is an approximate local optimum in the space of programming languages. However, it has accumulated some barnacles that should be scraped off, and some long-standing opportunities for improvement have been neglected. It would benefit from some co-operative maintenance especially in creating and maintaining program libraries. Computer checked proofs of progr
GCアルゴリズム詳細解説 日本語の資料がすくないGCアルゴリズムについて詳細に解説します トップページページ一覧メンバー編集 × GC 最終更新: author_nari 2010年03月14日(日) 20:47:11履歴 Tweet このWikiが目指す所 GCとは? GCを学ぶ前に知っておく事 実行時メモリ構造 基本アルゴリズム編 Reference Counter Mark&Sweep Copying 応用アルゴリズム編 IncrementalGC 世代別GC スナップショット型GC LazySweep TwoFinger Lisp2 Partial Mark and Sweep -Cycle Collection- Mostly Parallel GC train gc MostlyCopyingGC(Bartlett 1989) TreadmillGC(Barker 1992)
My last article was about how you can do monads in python with nice syntax. Now I'd like to present nice monad syntax in Ruby. I'm not explaining what monads are or how you can use them. For now, I'm expecting you to be familiar with monads. If you aren't, go read a nice article on them. Imagine you have a Monad base class like this: class Monad def bind(func) raise "not implemented" end def self.
Thinking about tools, it occurred to me that the greatest contribution to programming languages is not any single language. No, not Lisp, C, ML, Haskell, Qi, or any of the more obscure yet equally great languages. The greatest contribution someone could make to the programming language and compiler community is not to make a great programming language, but to make the tools necessary for making
This document is an unofficial example implementation of the system originally described in the paper Composing contracts: an adventure in financial engineering, by Simon Peyton Jones, Jean-Marc Eber, and Julian Seward. Familiarity with both versions of this paper is assumed. This example implementation is a literate Haskell program, Contracts.lhs. Don't be put off by the embedded HTML — it is an
Partial Evaluation and Automatic Program Generation The book Partial Evaluation and Automatic Program Generation gives a comprehensive presentation of partial evaluation: theory, techniques, and applications. It is suitable for self-study, and for graduate courses and advanced undergraduate courses on program transformation techniques. See the preface and the table of contents. Download the full t
Department of Information and Computing Sciences This is a website used by the ICS in education. If you are looking for more information on our department, go to Information and Computing Sciences. Information regarding your courses can be found in Blackboard. General information regarding ICS courses can be found in Osiris catalog. The archive of the technical reports of our department can be fou
[*] This material is based upon work supported in part by the National Science Foundation under Grant No. 0639876. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く