はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    参議院選挙2025

『qiita.com』

  • 人気
  • 新着
  • すべて
  • 環境とクロージャを用いた、より効率的な関数型プログラミング言語の定義&実装の仕方の例 - Qiita

    30 users

    qiita.com/esumii

    関数型プログラミング言語の定義&実装の仕方の例で「需要があれば後で書く」と書いた、「より効率的な実装」です(数件:-)の需要があったので)。前の記事は読んでいると仮定します。 さて、前の実装では、関数function(x){E}を値vに適用すると、本体である式Eの抽象構文木をすべて辿って、その中の変数xをすべてvで置き換えた式を作っていました(subst)。これは明らかに非効率的です。関数を呼び出すたびに、本体の抽象構文木を作り直しているのですから! そこで、変数に本当に値を代入して新しい式を作り直すかわりに、どの変数にどういう値が与えられた(束縛(binding)と言います)のか、覚えておくデータ構造を用意します。これを環境(environment)と言います。 環境は連想リストでもハッシュテーブルでも探索木でも、変数から値への対応(写像)を表していれば、何でも実装することができます。た

    • テクノロジー
    • 2015/01/30 22:39
    • FunctionalProgramming
    • OCaml
    • programming
    • あとで読む
    • 「関数型言語」に関するFAQ形式の一般的説明 - Qiita

      287 users

      qiita.com/esumii

      前置き: 特定の言語ではなく、関数型言語一般に関する説明です。 ここに書くのが良いのかわかりませんが、それを考える時間ももったいないのでとりあえず書きます。必要が生じたら移転します。 皆様のご要望や自分の気分(?)により随時加筆修正します。 「それは違うんじゃない?」というご指摘はもちろん、初心者の方の素朴な疑問・質問や、「ここがよくわからない」「こういうことも書いてほしい」みたいなコメントも歓迎します。すぐに対応できない場合もあると思いますがすみません。Twitterのesumii宛でも構いませんが、コメントのほうが他の方も見つけやすくて良いと思います。当然ながら(他者に対しても)誹謗中傷等はご遠慮ください。 いただいたコメントはほぼ本文に反映していますので、本文を読むために、必ずしもコメントを読む必要はありません。もちろん、興味と余裕(?)があればコメントも読んでいただければ非常に有用

      • テクノロジー
      • 2015/01/27 12:45
      • 関数型言語
      • 関数型
      • functional
      • programming
      • 関数型プログラミング
      • プログラミング
      • プログラミング言語
      • FAQ
      • language
      • Functional Programming
      • 関数型プログラミング言語の定義&実装の仕方の例 - Qiita

        85 users

        qiita.com/esumii

        前置き:何となく成り行きで何か書かないと心苦しいので、殴り書きレベル & 文才がなくてつまらない & 関数型言語の授業等を受けたことがある方にはものすごく当たり前の教科書的内容ですみませんが、取り急ぎ自分が容易に書けることを書きます。(この記事に直接の関係がある)質問があれば、(すぐに反応できない場合もあると思いますが)なるべく答えます。誤植などの指摘も助かります。 さて、プログラマならば誰しも一度は「オレオレ・オリジナル・プログラミング言語を作りたい」という欲求を抱きますよね。(抱きますよね?) そのとき、文字列レベルの文法(具象構文(concrete syntax)と言います)はわりと誰でも(?)考えられますが、それが木構造レベルでどういう風に表されて(抽象構文(abstract syntax)と言います)、どう動作するのか(操作的意味論(operational semantics)と

        • テクノロジー
        • 2015/01/25 23:18
        • functional
        • programming
        • OCaml
        • FunctionalProgramming
        • 関数型言語
        • Compiler
        • プログラミング
        • 関数型
        • function
        • language

        このページはまだ
        ブックマークされていません

        このページを最初にブックマークしてみませんか?

        『qiita.com』の新着エントリーを見る

        キーボードショートカット一覧

        j次のブックマーク

        k前のブックマーク

        lあとで読む

        eコメント一覧を開く

        oページを開く

        はてなブックマーク

        • 総合
        • 一般
        • 世の中
        • 政治と経済
        • 暮らし
        • 学び
        • テクノロジー
        • エンタメ
        • アニメとゲーム
        • おもしろ
        • アプリ・拡張機能
        • 開発ブログ
        • ヘルプ
        • お問い合わせ
        • ガイドライン
        • 利用規約
        • プライバシーポリシー
        • 利用者情報の外部送信について
        • ガイドライン
        • 利用規約
        • プライバシーポリシー
        • 利用者情報の外部送信について

        公式Twitter

        • 公式アカウント
        • ホットエントリー

        はてなのサービス

        • はてなブログ
        • はてなブログPro
        • 人力検索はてな
        • はてなブログ タグ
        • はてなニュース
        • ソレドコ
        • App Storeからダウンロード
        • Google Playで手に入れよう
        Copyright © 2005-2025 Hatena. All Rights Reserved.
        設定を変更しましたx