タグ 遅延評価
人気順 10 users 50 users 100 users 500 users 1000 usersnaoya on Twitter: "ChatGPT の VSCode 拡張 GPT-4 に対応していた Haskell で書かれた動的計画法のここの関数を遅延評価を使わずに STUArray 使って高速化して、と依頼した。ちゃんと動きました。(STArray
ChatGPT の VSCode 拡張 GPT-4 に対応していた Haskell で書かれた動的計画法のここの関数を遅延評価を使わずに STUArray 使って高速化して、と依頼した。ちゃんと動きました。(STArray を使… https://t.co/9NkJ4uuDnA 続きを読む
JavaScript で遅延評価を導入して起動を高速化した話
この記事は、JavaScript で Flash Player の実現を頑張った(もしくは現在進行系で頑張っている)人たちの集う Flash Advent Calendar 2020 に参加しております。 Flash Player を JavaScript で実装していた際に、現場から「起動の高速化」という難しい要求をもらった際、「遅延評価」を導入したところ大変効果がありま... 続きを読む
続くといいな日記 – 遅延評価でデバッグが困難になる状況
先日、Haskell 界隈で遅延評価によってデバッグがし辛いのはどんな時かと言う話があった。見た感じ、遅延評価によってデバッグのしにくさはそんなに変わらないと言う意見が結構あり、個人的には衝撃だった。僕自身は遅延評価にだいぶヘイトを溜めてる人なので、どういう状況でデフォルト遅延評価が嫌かを実感できる問題... 続きを読む
さようなら遅延評価 - あどけない話
Haskellがとっつきにくい原因の一つに遅延評価がある。入門書では、無限リストと遅延評価がことさら強調される。しかし、Haskellを業務で使ってみると、遅延評価が煩わしくなってくる。遅延評価なしでもほとんどのことは実現できるし、メモリーの使用量は推測できないし、あまりいいことはない。 Haskellの評価戦略が、... 続きを読む
Proxy "it": アローすら面倒な怠惰JavaScripterのための遅延評価 - Qiita
遅延評価で これ data.map(row => row.values.split(',')[2].trim().map(col => col.trim()).map(parseFloat)[2]); が こう data.map(it.values.split(',').map(it.trim()).map(parseFloat)[2]); なる はじめに 何をしたいのか JavaScriptを書... 続きを読む
Vim script でジェネレータを作ったり、遅延評価してみる - ryota-ka's blog
2016 - 12 - 08 Vim script でジェネレータを作ったり、遅延評価してみる Vim Vim script ジェネレータ 遅延評価 イテレータ この記事は CAMPHOR- Advent Calendar 2016 8日目の記事です. はじめに 日本時間の2016年9月12日に, Vim 8.0 がリリースされた. Vim 7.4 のリリースからはおよそ3年振り, Vim 7.0... 続きを読む
プログラマの三大美徳の啓発の勧め : 怠惰、短気、傲慢 ― JavaScriptで遅延評価 | プログラミング | POSTD
コンピューティングにおいて、”laziness(怠惰)”は幅広い意味の単語です。大抵は、もし必要が無ければ何もしないということを意味します。正反対を指すのは”eager(勤勉)”です。後で必要になる場合に備えて働くということです。では、後者であるJavaScriptで前者のように実装するにはどうすればよいのでしょうか?larry wall 怠慢と勤勉 コンピューティングにおいて、”laziness... 続きを読む
関数型プログラミングはまず考え方から理解しよう - Qiita
関数型プログラミングが注目されて久しいです。 そろそろ勉強しておかないとなぁということで調べてみるものの、情報として出てくるのは"高階関数","カリー化","遅延評価","モナド"などの物々しい単語の数々。これらを勉強して理解した気になったものの、プログラムを書こうと思うと全然書けませんでした。 結局、関数型言語を実現する手段を学ぶ前に関数型と言われるパラダイムを理解しないことには書けません。とい... 続きを読む
JavaScriptユーザのための関数型プログラミング(後編) | プログラミング | POSTD
この記事の前編はこちら:(http://postd.cc/functional-programming-for-javascript-people-1/) ##遅延評価 (https://ja.wikipedia.org/wiki/%E9%81%85%E5%BB%B6%E8%A9%95%E4%BE%A1)はこの記事の前編はこちら: JavaScriptユーザのための関数型プログラミング(前編) 遅... 続きを読む
Haskell - 正格評価と遅延評価(詳細編) - Qiita
さて基本編に続き詳細編です。 動作を確認しながら細かく見ていきます。 Debug.Trace.trace 初めにtrace関数を導入しておきます。 こんな型の関数です。traceが評価されると、第一引数が標準エラー出力へ出力され、第二引数が返り値として返ります。 第二引数と返り値が型パラメータaで表されていることから、第二引数は何も加工されることなく返り値として返されることがわかります(それしかで... 続きを読む
Elixir - 無限リストによるエラトステネスのふるい - Qiita
Elixir では Stream モジュールを使って、遅延評価と無限リストを扱うことができるがそれによりエラトステネスのふるいを、Haskell と同じように無限リストを使った記述ができるか・・・というのが今回の試み。結果としては、カッとなれば、できる。 以下、Stream の解説も交えてお届けする。 Enumerable プロトコルと Enum および Stream Elixir の Enum ... 続きを読む
【長編ポエム】関数型言語が分からんお前でもPythonなら分かるやろ:第2回 関数を生成する関数はすごいよ編 - Qiita
はじめに これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください。 【ゴール】 「なぜ関数プログラミングは重要か」という文章で重要とされている「高階関数」と「遅延評価」について理解してもらうこと (遅延評価の説明は次回) 【執筆動機】 関数... 続きを読む
Swift でジェネレータを作ったり、遅延評価してみる - 意識低い開発者のBlog
Swift 1.2 を使ってジェネレータを作成したり, ジェネレータを使って遅延評価をしてみます. 同様のことをこれまでいくつかの言語で行っていますが, それについては以下を参照してください. これまでの流れ Ruby の Enumerator でジェネレータを作ったり、遅延評価してみる Python でジェネレータを作ったり、遅延評価してみる ECMAScript 6 でジェネレータを作ったり、... 続きを読む
JavaScript - Immutable.jsを色々触ってみました - Qiita
immutable.jsは、facebook社が作っているJavaScriptのライブラリでimmutableなコレクションを提供してくれます。List, Stack, Map, OrderedMap, Set, OrderedSet and Recordがあるとのこと。 関数型言語にインスパイアされて作っているらしいので、関数型に馴染みのある関数が出てきて嬉しいです。 他にも、正格でなく遅延評価... 続きを読む
faraday-lazyable - r7kamura blog
faraday-lazyableという、 HTTPリクエストを遅延評価させるためのライブラリを作った。 遅延評価はある種の複雑性を持ち込むが、ビジネスの要求に合わせて正しく使っていきたい。 遅延評価 HTTPリクエストにおける遅延評価とは何か。 遅延評価というのは、評価しなければならない値が存在するとき、 実際の計算を値が必要になるまで行わないことをいう。 HTTPリクエストを遅延評価するというの... 続きを読む
プログラミング言語Frege(フレーゲ)を紹介します - uehaj's blog
2013-12-21 プログラミング言語Frege(フレーゲ)を紹介します haskell JVM Frege これはマイナー言語 Advent Calendar 2013の21日目の記事です。 Frege(フレーゲ)を紹介します。 Fregeは、Java VM上で動作するHaskell風の言語です。以下のような特徴を持っています。 純関数型言語 非正格評価(いわゆる遅延評価) Hindley-M... 続きを読む
関数型プログラミング言語のまとめ - ワザノバ | wazanova.jp
http://funceng.com/2013/11/03/review-of-functional-languages/ Kevin Buellがブログの一連のエントリーで関数型プログラミング言語の概要をまとめています。 1) Haskell ラテン語がわかる人には親しみやすい。 [Background] 遅延評価の研究成果をとりまとめる委員会が1990年にHaskell 1.0の仕様をつくった... 続きを読む
実装して理解する遅延評価の仕組み 〜 thunkを絵に描いて理解しよう・JavaScriptでHaskellを実装!? - プログラムモグモグ
Haskell, JavaScriptこの記事では, Haskellに用いられる「遅延評価」の仕組みをJavaScriptのコードを用いて説明します.遅延評価とはどのように動くのか, 考えて行きましょう.HaskellのコードとJavaScriptのコードの比較Haskellでの x = y y = 10 と, JavaScriptの var x = y; var y = 10; というコードを考... 続きを読む
GHC でスタックトレース - あどけない話
Haskellこれまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中で評価される式だけだ。(つまり、ここは正格に評価される。)この問題を解決するために GHC 7.4.2 から、わざわざスタックにログ... 続きを読む
遅延評価いうなキャンペーンとかどうか - ぐるぐる〜
遅延評価については以前も書いてるんですが、そのときは結論なしでした。が、ちょっと考えるところがあって、言語を Java に絞って自分の考えを明確にしておきます。結論から書きましょう。 「Java(とC#) で遅延評価って書いてあるものは遅延評価ではない」です。Java における「評価」とはまず一番最初に、Java で「評価」って言うと、どういうことを指すのかを確認しておきます。言語仕様の該当部分を... 続きを読む
遅延評価ってなんなのさ - 予定は未定Blog版
何なんでしょうね。分かりません。自分の頭の中をとりあえず整理するためのエントリなので、あなたの頭を混乱させるだけになるかもしれません。もし混乱してしまったら忘れてください。え、無理?忘れてください。これは遅延評価ですか?関数を渡すだけ // Scala def hoge(f: Unit => Int) = for (i 1 to 2) println(f()) (* F# *) let hoge ... 続きを読む