You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
文脈自由文法とパーサコンビネータ Pasberth December 20, 2013 概 要 この文書は文脈自由文法とパーサコンビネータの簡単な教科書であ る.これを読めば,きっと,文脈自由文法とパーサコンビネータを理解 する手助けとなるであろう.本書は主に Haskell におけるパーサコンビ ネータを扱う.たとえば,Parsec や Attoparsec,Trifecta の使い方を簡 単に勉強するのが本書の目標である.もしあなたがパーサコンビネータ に興味があるなら,ぜひ手にとってみてほしい.きっと役に立つだろう. 目 次 1 はじめに 2 1.1 ソースコード . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 ソースコードの入手方法 . . . . . . . . . . . . . . . . . . .
(Lisp Advent Calendar 2013 18日目の記事) しばしばLispの特徴として「プログラムを生成するプログラムを書ける」ということが言われるわけだが、普通の人はこれを聞いてどう解釈したらよいものか悩むと思う。字面通りに受け取ると、あたかも勝手に世の中の問題を把握してそれを解決するプログラムを出力してくれる真の人工知能のようなものを想像してしまうかもしれない。しかし残念ながら、そうした所謂「強いAI」は人工知能研究における聖杯であり、いまだにSFの範疇から出るものではない。 LISPerの言う「プログラムを生成するプログラム」とは普通もっと限定された意味である。そしてそれはほとんどの場合マクロによって実現される。 evalとマクロ Lispではプログラムとデータが同じ形をしているので、それまでプログラムとして扱っていたものを突如データとみなして操作することができる。逆に
コメントは基礎的で一般的なものでありながら、「どのようなことをコメントに残すか」は経験のあるプログラマにとっても難しいもの。 この記事では、アンチパターンコメントを見ながら、どのようなコメントを残すべきかについて説明します。 by 馬場美由紀 (CodeIQ中の人) コードは機械のために、コメントは人間のために? プログラミング言語を学ぶとき、コメントは最初に習う項目のひとつです。そして、プログラムであればコメントを含んでいることが普通です。ある研究によれば、ソースコードの平均19%がコメントだそうです。 コードを書くとき、私たちは機械とコミュニケーションを取ることを意識しています。機械はコードを認識してコンパイルしたり実行してくれます。解釈できなければ教えてくれます。プログラマは、コンパイラのためにデータ型を明示するコードを書いたりもします。 一方、コメントは人間とコミュニケーションする
こんにちは @cero_t です。 今日のテーマは・・・ラピュタ禁止令! バルス! いや違う。ラムダ禁止令、です。 さて、なかなかの滑り出しですが、今日はただのラムダの紹介ではなく、禁止令に主眼を置いて語ります。 このエントリーは、Java Advent Calendar 2013の12/16分の投稿です。 http://www.adventar.org/calendars/145 前日は @sugarlife さんの JDK 8 新機能ダイジェスト (JDK 8 Features) です。 翌日は @setoazusa さんです。 ラムダ禁止令はあり得るのか? 勉強会やその懇親会などで、たびたび「ラムダ禁止令が出るのではないか」が話題に上ることがあります。 「そりゃ禁止する組織もあるでしょうね」というのがお決まりの答えなのですが、ただそれに従うだけでは面白くありませんし、要素技術の発展も
この記事はJava Advent Calendarの13日目の記事です. 昨日は@kisさんのJava SE 8でパターンマッチを実装するでした. 明日は@megascusさんです. 皆さんはおそらく普段からJavaを使ってプログラムを作っているかと思います. そんな皆さんはJava言語について多くの思い・想いを持っているかと思います. 例えば,「こんな事ができたら良いのに」だったり,「ここが良くないんだよなぁ」といった具合です. そういった言語特徴の追加や改善を自分の手でできたら素敵だと思いませんか? 幸いJavaはOpenJDKというオープンソースプロジェクトで開発が行われており,第三者の僕達でもソースコードを手に入れ自由に変更を加えることができます.*1 この記事では言語の拡張の仕方を述べ,OpenJDKを実際に用いて極々簡単な言語特徴を実装してみます. コンパイラ概要 コンパイラの
師匠様方が走り回りまくる今日この頃、皆様いかがお過ごしでしょうか。しんやです。 弊社AWSコンサルチームでは、AWSでの環境構築を『AWS CloudFormation単独(パッケージのインストール等もCloudFormationで兼ねる)』、若しくは『AWS CloudFormation+Knife Solo』という組み合わせで行うのが主流となっています。当エントリでは後者の方、『AWS CloudFormation+Knife Solo』で環境構築を行う際の『knife solo』に於ける環境構築手順について、意外と初見では踏むべき手順が多く、躓く点も多かった(と個人的には思っている)ので備忘録も兼ねてエントリとしてまとめておこうと思います。 スタート地点 Gitインストール rbenvインストール ruby-buildインストール Rubyインストール by rbenv knife-
2013-12-04 コードレイプされて本気でプログラマ辞めようかって脳裏をよぎった Java 開発 つらい現実。 「だから言ったのに」事案2013-12-04 11:05:15 via web 自分の書いたプログラムが大陸人の手によって改悪されまくってて涙で前が見えない。2013-12-04 11:16:49 via web あのね。。拡張for文で書いてたのにfor(int i=0; i<items.length; i++)って書きなおされてたんだ…。2013-12-04 11:18:41 via web てか、嘘でしょ。なんでSetをtoStringして文字列表現にして「,」でsplitするとか考えるの…。意味分かんないんだけど…。2013-12-04 11:19:51 via web こう、胸の奥がキューッてなってる。苦しい。2013-12-04 11:21:11 via web
この記事は「Theorem Prover Advent Calendar 2013」6日目の記事です。 http://qiita.com/advent-calendar/2013/theorem_prover 神田「野らぼー」にて、地下の薄暗い店内で… 「そう言えばこないだ隣で起こってたポインタオーバーラン、対応大変そうだったですけどちゃんと家に帰れてたんでしょうかね、新婚なのに…」 「ヌルポとかポインタオーバーランとか、どうして無くならないんだろうね。その時はみんな手を抜いてるつもりなんて毛頭なくて、一生懸命考えて大丈夫だと思ってるはずなんだけどね。レビューもして、それでも起こった後でみんなでソース見てみると、なんで気づかなかったんだよ!ってことになる。」 「人間って、そういうの苦手なんでしょうねきっと。ほら、『何かほかにありませんか』って聞かれても出てこないじゃないですか。静的な解析っ
(この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く