プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る VBAにおけるFileDial
Haskellには、Cabalというパッケージ管理システムがあります。RubyのRubyGemsみたいなやつです。口は悪いけど、どこか憎めない。そんなやつです。このCabalをMacに入れようとしたのですが、どうもウマくいかず。数時間かかって、やっとインストールできました。 まず、試すのはMacPorts。 $ sudo port install hs-cabal hs-httpとhs-zlibとhs-caballibがない。 で、試行錯誤していたのですが、結局、GHC 6.8.2だとダメでした。そこで、GHC 6.8.3を入れようと試みる。MacPortsでは、@6.8.3というカンジでアットマークを付けるとバージョンを指定できます。ですが、MacPortsで入るのは6.8.2まで。そこで、GHCの公式サイトからダウンロード。 Home ? The Glasgow Haskell Com
紫藤のページにようこそ! Lisp, Haskell, Python, Sather などの関数型言語の解説、小品プログラムを載せています。 ここでは関数型プログラミング言語をものすごく広い意味で使っており、 手続きをデータとして扱える言語を指します。 (Python, Sather などは普通はオブジェクト指向言語に分類されます。) また、xyzzy のマクロに関するメモもあります。 面白そうな割りに、web 上に文書が少ない題材を取り上げています。 リンクはご自由にお張りください。 更新ログ [Sep 15, 2014](Python) Set を用いたライフゲームの実装 を作成 [Jul 21, 2014]デコレータを用いた bottle.py のアクセスコントロール を作成 [Jul 13, 2014]Maildir のバックアップ を作成 [Jun 28, 2014]自宅サーバの
分かった! 分かった! 分かった! 自己言及 ものまね鳥(M)は、自己言及する鳥なんだ! Haskell では、型推論がジャマして、ものまね鳥を実現できない。 -- Mx = xx m x = x x -- エラーになる ヒバリ(L)も実現できない! -- Lxy = x(yy) l x y = x (y y) -- エラーになる 当然の帰結として、Haskell では再帰を使わないと賢人鳥(Y)を実現できない! 賢人鳥1 wikipediaの Y コンビネーターに書かれている最初の賢人鳥はこう。 (define Y (lambda (f) ((lambda (x) (f (lambda (y) ((x x) y)))) (lambda (x) (f (lambda (y) ((x x) y))))))) これは SLL だ! ;; Sxyz = xz(yz) (define S (lam
栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib
まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く
グローバル変数が欲しい理由? グローバル変数が欲しい理由っていうエントリを見まして,忙しかったのでズイブン遅くなっちゃったけど,ちょっと考えてみます. 実はコメントしているnobsunが話をした同僚ってのは私です. で,nobsunは完成したプログラムを公開してこうすればいいんじゃない的なブログを書いてますけど, これでは多分相手はナットクしないんじゃねーかなーと思うわけ. だってグローバル変数を避けて実装すりゃ,そらそうでしょうよって思うだけだもの. そうじゃなくてnobsunをはじめとしてHaskellerがグローバル変数を欲しくならないのか, それとも禁欲的に自分に制約をかけてるだけなのかを示さなきゃならんと思うわけですよ. 確かにグローバル変数が欲しいとか引数に持ち回らなきゃいけないのってイマイチとか, どっかで聞いたようなセリフだよなぁ.(^^;) いや,言いましたよワタシも.
Harrorth - Learning Haskell, Forth and Parrot - Together. 2008年6月中旬 無謀にも、Pugsの初期バージョンを読もうと意気込んだけれど、早々に無理だと断念。 インターネットをさまよい歩くも、Parsec関連は、イントロだけやって「すばらしい」で終わりが多い。部分的に字句解析に使う例も多いが、言語を作る例がほとんどない。・・・こまった。 とっ、「ysano」さんのブログに「Haskell: Forthインタプリタの実装」があって、とびついた。 でっ、出処のHarrorthにたどり着いたわけだ。 「nothingmuch」さんは、Pugsプロジェクトの方らしい。 そして、この(Harrorth)プロジェクトがスタートしたのは、「Haskellの理論を学ぶフラストレーション」が元になっているらしい。 彼
このブログも日記というよりもはや年記になっていて、やるやる詐欺、いや、書く書く詐欺になっているので、ここらへんでエントリー投入しときます。とは言っても、はてな記法もすっかり忘れているので、ひとまず手短なエントリーにしときます。 ここのところは、Android のポーティングやアプリ開発にシフトしているところです。ハードウェア系 (SoC とか) からは一旦離れて、組み込み Linux や C++、Java の経験値を上げているところです。 Android のポーティングには、個人では BeagleBoard を使ってますが、最近、Kinect センサーを購入したので、Android + BeagleBoard + Kinect でちょっとまとめてみようかな、と思ってる次第です。ぼちぼちブログ書きのリハビリをしながら。 というわけで、久しぶりすぎる更新でした。 前回のエントリから、ずいぶんと
輪講で「Programming in Haskell」をようやく読み終えました。この本は、最高のHaskell入門書といって間違いないでしょう。 Programming in Haskell 作者: Professor Graham Hutton出版社/メーカー: Cambridge University Press発売日: 2007/01/18メディア: ペーパーバック購入: 2人 クリック: 67回この商品を含むブログ (22件) を見る 一緒に Haskell の本を何か読もうという話が、友達との間で出たとき、最初は「The Craft of Functional Programming」にしようかと思っていました。ただ、出版社の人から「Programming in Haskell」を勧められたことがあったので、二冊を友達に提示したところ、直感で「Programming in Has
メニュー Home できごころ プロフィール F# 言語作りはこちら ↑これは、古い ↓こちら、参照 F# 言語作り リトライ ここがメイン 3D遊びに奪われ気味 3次元CAD事始め Autodesk 123D Design Fusion360 Fusion360 覚書 Fusion360 ギャラリー ギャラリー 開始しました Haskell再開 古い記事削除 Haskell リターンズ 今(2013年)は、 ここがメイン のつもりが、挫折 Python のお勉強 DotNet Framework DotNet3 SQL Server 日記 日記は、2015年9月で終わり、 というか ブログ新設:こちらに移設 15年09月 15年08月 15年07月 15年06月 15年05月 15年04月 15年03月 15年02月 15年01月 ○2014年
JSXの特徴は、トップページにも書いてあるとおり「faster, safer, easier」の3つです。安全性とか簡単さについては人とか状況によって様々な定義や意見がありますが、唯一Fasterだけは客観的に測れます。 しかしJSXと速度については、トップページにあるBox2Dとshootingのデータ*1とAOBench on JSXぐらいしかありません。 というわけでWebkitで使われているSunSpider 1.0.2 JavaScript BenchmarkをJSXに移植してJavascriptと速度を比較してみました。*2 環境 sunspider Benchmark for JSX - JSX版ベンチマーク Sunspider Benchmark for Javascript - Javascript版ベンチマーク GitHub - mzp/sunspider-jsx: s
第1回 Haskellプログラミングの楽しみ方 山下 伸夫 株式会社タイムインターメディア 2008/10/29 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) 本連載は、Haskellプログラミングの初歩から始めて、日常的なスクリプティングやWebプログラミングをHaskellで楽しめるようになるまでのガイドである。 Haskellプログラミングのスタイル Haskellプログラミングに興味はある人でも、Haskellプログラミングの習得にはちょっとした障壁を感じることがあるのは間違いないようだ。小難しい概念や用語のせいでもあるが、それらはあまり重大な理由ではない。 障壁となるのはHaskellのプログラミングスタイルである。Haskellのプログラミングスタイルは関数プログラミングという系統に属する。一方、
Language.CはHaskell用の、C言語のソースコードを構文解析するライブラリ。 構文木はHaskellのデータとして操作可能で、これのおかげでC言語のコードを色々と操作できる。意味解析に役立ついくつかの補助関数も定義されているようだ(よく調べてない)。 やったこと、動機 JHC (Haskellのコンパイラ;ISO C互換のコードを吐く)は C99のコードを吐くようだ ツールの制約でgcc 2.95(19991024)しか手元にない。 gcc 2.95はC89しか受け付けないようだ jhc が吐くコードを gcc 2.95 でコンパイルできるよう自動変換したい そこで Haskell用の Cパーザである Language.C を使って、JHCが吐くコードを gcc 2.95でコンパイルできるように変換する。未完。 C89では 変数宣言が ブロックの頭以外に来たらエラー。全ての変数
http://tanakh.jp/hl/ darcs get http://tanakh.jp/repos/haskellitter/ Haskellでtwitterのようなものを実装しました。 試験的に公開してみます。 皆様利用して感想など頂けると幸いです。 Web2.0的な素敵な背景は、tkngさんに作っていただきました。 ありがとうございます。 全体的なページのデザインは私が適当にポコポコ作ったので、ひどいです。 このシステムは日々の普通な使用にゆるゆると耐えてくれればよいかなと思っておりますが、 最低限のスケーラビリティは考えて設計されております。 投稿データ〜1000万程度まで保持できることを考え、 そのデータに対し現在提供しているあらゆるクエリをノータイムで返すことができます。 投稿、削除、星をつけるなどの操作からランキングをリアルタイムに更新します。 ページはすべてたどること
Captcha security check mokehehe.com is for sale Please prove you're not a robot View Price Processing
予習編.たまーに,YAMLのパーサとか欲しくなるんだけど,インデントの処理をどうやったら良いのかよくわからなくなって困っていたんだけど,勉強になった. Haskell 98 Syntaxにこと細かに書いてあるので,適当に実装してみた. http://svn.soutaro.com/has/tags/offside-rulesにありますので,適当にチェックアウトして,ocaml-3.10とかfindlibとかextlibとかインストールしたうえでmakeしたらできます.標準入力からHaskellプログラムを読み込んで,オフサイドルールを処理したやつ,つまり適当に{}とか;とか追加したトークン列を出力します. let fac3 0 = 1 fac3 n | n > 0 = n * fac (n-1) みたいのが, { let { fac3 0 = 1; fac3 n | n > 0 = n *
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く