Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

haskellに関するm0t0m0t0のブックマーク (21)

  • 「アルゴ式」をHaskellで学ぶための準備

    この記事は、CAMPHOR- Advent Calendar 2021 の7日目の記事です。 「アルゴ式」というプログラミングを学んで実践できる非常に良質なWebサービスがあります。 アルゴリズムについて解説された教科書だけでなく、実際にプログラミングを書いて提出してオンラインでジャッジしてくれるシステムを備えた練習問題も用意されているのが特徴です。さらにこのオンラインジャッジシステムは多くのプログラミング言語に対応しており、その中にはHaskellも含まれています。 今回はこのアルゴ式を読むにあたって練習問題をHaskellで解くために必要になりそうな知識についてまとめました。アルゴ式は現在ベータ版なので将来的な変更で変わってしまうものもあるかもしれませんが、2021年12月現在の練習問題を全てHaskellで解いた上で必要になったものをまとめているので参考にしていただけると幸いです。

    「アルゴ式」をHaskellで学ぶための準備
  • 協調型スケジューリング vs. 先取り型スケジューリング

    この記事はCooperative vs. Preemptive: a quest to maximize concurrency powerの翻訳・意訳記事になっています。 動機 私のチームはJavaを多用しています。システムを構築するために、ウェブサーバやデータベースドライバなど、多くのものに、スレッドを介した同時実行機能を内蔵した、実績のあるオープンソースのJavaライブラリを使用しています。 また、ビジネス特有のロジックを実装する際には、Javaのスレッド化命令を利用して同時実行を実現しています。 しかし、時間が経つにつれ、パフォーマンスの問題が見えてきました。 Javaアプリには合計1万個のスレッドが実行されていたため、ホストのRAMをすべて占有してしまうサービスがありました。 64ビットのJVMのスレッドのスタックサイズが1024バイトであるため、スレッドが1万もあるとスタックだ

    協調型スケジューリング vs. 先取り型スケジューリング
  • Haskellの設定ファイル言語「Dhall」の基本と、KubernetesのYAMLを管理する方法

    2018年11月10日、Haskell-jpが主催するイベント「Haskell Day 2018」が開催されました。純粋関数型プログラミング言語Haskellをテーマに、Haskellに興味のある人から入門者、ちょっとできる人まで、様々な層に向けたプレゼンテーションを行ったイベント。実務から研究まで、幅広いHaskellの事例を共有します。プレゼンテーション「Dhall: Haskellの新たなキラーアプリ」に登壇したのは、syocy氏。講演資料はこちら Dhall: Haskellの新たなキラーアプリ syocy氏(以下、syocy):では続けて、「Dhall: Haskellの新たなキラーアプリ」という発表をさせていただきます。 繰り返しになりますが、このスライドおよびソースコードはGitHubで管理しています。PDFGitHub Releasesのほうに上がってます。スライド中の

    Haskellの設定ファイル言語「Dhall」の基本と、KubernetesのYAMLを管理する方法
  • 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita

    どうも、浮動小数点数オタクのmod_poppoです。 昨日開催された ABC169 の C 問題が浮動小数点数の罠な問題だったらしいので、どこが罠なのか、そしてどうすれば罠を回避できるのかを解説してみます。 また、典型的な誤答に対しては、それを落とすためのテストケースも用意しました。 問題文(引用) まず最初に問題文を引用しておきます。 AtCoder Beginner Contest 169 | C - Multiplication 3 問題文 $A\times B$ の小数点以下を切り捨て、結果を整数として出力してください。 制約 $0\le A\le 10^{15}$ $0\le B<10$ $A$ は整数 $B$ は小数第 2 位まで与えられる 入力 入力は以下の形式で標準入力から与えられる。

    浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
  • 関数型言語のウソとホント - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 追記 こんな記事を読むより、まともな関数型プログラミング言語を使ってまともに関数型プログラミングを学ぶほうが、関数型プログラミングについてよほど正確な理解を得られます。少しでも関数型プログラミングに興味のある人は、まずは真面目なHaskellの教科書やすごいHを読んだり、やさしいHaskell入門を読んだりしながら、実際に関数型プログラミングのコードを書いてみることをお勧めします。 繰り返しますが、この記事はあんまり読む必要はないです。関数型プログラミングを理解するには実際に自分でコードを書いてみるのが一番です。関数型プログラミングあ

    関数型言語のウソとホント - Qiita
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • time.gif · HookRace Blog

    This is an endless GIF that always shows the current time in UTC: Source Code (From reports it doesn’t seem to work on Safari, other browsers should be fine.) time.gif is written in Haskell and works by dynamically generating each frame of the GIF and slowly feeding them over the HTTP connection. There is no guarantee that this GIF shows a reasonable time and this is just for fun anyway, so better

  • Haskellでお絵かき(1) - bitterharvest’s diary

    1.お絵かき 論文を執筆する時、説明のために必ずいくつかの図を描く。特に、概念が難しい時は、図の役割はとても大きい。この頃は、Power Pointで図を描くことが多くなってきた。これは、Power Pointを用いると、割に簡単に描けることに起因している。しかし、中心同士をつなぐと、どうしても直線が水平にならないなど、不満な点も多い。ヒマワリが実をつけている様子をPower Pointで描こうとしたら、大変なことになってしまうが、繰り返しパターンの多いこの手の問題は、Diagramsは得意である。 Diagramsのギャラリーがこのホームページにある。見ているとなかなか楽しくなり、自分でも描いてみたいという衝動に駆られる。 2.Diagramsを使えるようにする DiagramsをWindows7あるいは8.1に実装するためには次のようにすればよい(注意:diagramsのインストールに

    Haskellでお絵かき(1) - bitterharvest’s diary
  • 日本語MarkdownをPandocで印刷用に変換する方法 - Casual Startup - MBA卒プログラマの起業日記

    テキスト主体だけど最終的には印刷できる形式にしないといけない文書を、Markdownで書きたくなり、試した結果をまとめておきます。テキストエディタ使いが、会議の議事録をWordやPDFで配布しなくてはいけない場合などに便利だと思います。 ツールの選定: Pandocでdocx出力 Markdownの整形に関して検索すると、まず出てくるのがPandocというツールです。Markdownをはじめとする、各種のテキスト形式を入力して、HTML・Wordファイル・LaTeXPDFといった多数の形式に出力することができます。 ただ、PDFに変換するにはLaTeXを経由する必要があります。 自分は学生時代および社会人初期に、かなりLaTeXを使っていたのですが、この目的だけのために15年ぶりぐらいでTeX環境を選定・構築する気になれず、Wordファイル(docx形式)に出力して、そこで印刷やPDF

    日本語MarkdownをPandocで印刷用に変換する方法 - Casual Startup - MBA卒プログラマの起業日記
  • Haskellのビルドツール"stack"の紹介 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Stackとは? つい先日のことですが、Stackage界隈からstackというツールがリリースされました。リリースされたとはいえ、開発され始めたのがちょっと前のことですし、現在も盛んに機能が追加されているので、絶賛開発中であるとかそういったほうがいいかもしれません。 まだ開発の始まったばかりのツールなのに、なぜこんな紹介記事を書こうと思ったのかというと、このツールがHaskellの開発において極めて有用になることが確定的に明らかであって、すでに荒削りながらも、大変便利に使えているからなのです。そしてここで紹介することで、多くの読者の方

    Haskellのビルドツール"stack"の紹介 - Qiita
  • モナドはポケモン。数学が出てこないモナド入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 仮説:モナドとはポケモンである このテキストは、でんこうせっかの速さでモナドが使えるようになりたいひとのための、真面目なモナド入門です。数学っぽい話はなるべく避けていますし、関数型言語についての知識がなくても読めるように書いています。対象の読者は以下のような人です。 モナドが何なのか知りたい、使いたい Haskellを学ぼうとしたがモナドがわからなくて挫折した モナドを学ぼうとしたら、箱だのブリートだのと変な喩え話をされて余計わからなくなった プログラミングを学ぶつもりが数学の講義が始まったので止めた 最初はモナドは難しいからとGHCi

    モナドはポケモン。数学が出てこないモナド入門 - Qiita
  • Windowsでshebangもどき、またはバッチにスクリプトを埋め込む方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Windowsでshebangもどき、またはバッチにスクリプトを埋め込む方法 - Qiita
  • GitHub - xwmx/pandoc-ruby: Ruby wrapper for Pandoc

    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

    GitHub - xwmx/pandoc-ruby: Ruby wrapper for Pandoc
  • Haskell風AltJSのベンチマーク - Qiita

    みんな大好きHaskell風altJS!みんな違ってみんな良いのですが、やはり気になるのは生成するjsの速度やサイズですね! 今回は竹内関数を使用してベンチマークを行ないました! エントリー javascript haste-0.4.3 fay-0.22.0.0 purescript-0.6.2 Elm-0.14 ghcjs-dev idris-0.9.15.1 ベンチマーク条件 ベンチマークには正格評価の竹内関数(Tarai)を使用した コードは以下のHaskell実装をベタ移植した1 2 コンパイルされたコードをuglifyjsにより圧縮した javascriptの実行にはnode-0.10.35を使用した ベンチマークは10回実行し、process.hrtime関数で計測した 実行環境はMac book air Mid 2011(メモリ4GB, CPU 1.8GHz Core i7)

    Haskell風AltJSのベンチマーク - Qiita
  • 試して面白いプログラミング言語6選 - Qiita

    今日は、プログラマなら誰でも試して面白いと思えると私が考えているプログラミング言語6つを紹介したいと思います。 元記事 (英語) Haskell Haskellは静的型システムを持つ純粋関数型言語です。 Haskellはプログラミング言語の分野の有名な研究者たちによって設計されています。 Haskellによるプログラミングを通して、Haskellプログラマは、プログラミング言語の理論について多く学ぶことができます。 Haskellには優秀なユーザがとても多くいます。 Haskellの問題は多くの人にとって使い始めるのが難しいことです。 Haskellを使いこなすには、プログラミング言語の理論の抽象的な概念を多く理解する必要があります。 しかし、その表現力はとても強力です。 今までにない全く新しいコンセプトのソフトウェアを実装する際の実装言語として、Haskellは最も最適なプログラミング言

    試して面白いプログラミング言語6選 - Qiita
  • Pinhole: a falling ball demo

    Hover your mouse over this screenshot to *see into the future* At Hacker School last year (I was part of the winter 2013 batch), I spent a few days making a falling ball game/demo (source on GitHub). I've neglected to write it up and package it until now. It's pretty simple, but it's got one really cool feature that I wanted to show off: you can ~~see into the future~~. You can download Pinhole fo

  • Algebraic Data Types | Esper Tech Blog

    Algebraic data types are the fundamental building blocks of programs in ML-style languages like Haskell and OCaml. Since they play such an important role in these languages, it is well worth understanding how they work and where they come from—at first, the design may feel a bit arbitrary, but in reality it flows naturally from a reasonable starting point. Algebraic data types are made up of two c

    Algebraic Data Types | Esper Tech Blog
  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
  • foldlを直す - 純粋関数空間

    http://www.well-typed.com/blog/90/ foldlに関するこの記事(英文)が面白かったので、勝手翻訳しました。 foldlなんとかなるといいですね。 foldlを直す foldl 関数は壊れている。壊れているとみんなが知っている。 四半世紀近く壊れたままだ。ついにこれを修正する時が来た! 今日、私はPrelude.foldlをData.List.foldl'として知られる実装で再定義することを提案する。 foldlは壊れている! 既にご存知だとは思うが、念のため… Haskellerが必ずfoldlではなく、foldrやfoldl'を使うように勧めてくることにお気づきだろうか? 例えばReal World Haskellでは次のように言っている。 `foldl`のサンクの挙動のため、実アプリではこの関数を使わないようにするのが望ましい。 特に問題がない場合でも

  • 「圏論」は関数プログラミングの「モナド」に役立つ。入門PDF等のリンク集 - 勉強メモ (大学の講義動画や,資格試験の対策)

    数学の解説コラムの目次へ 圏論を学ぶ目的は,HaskellやScalaなどの関数型プログラミング言語をよく理解するため,としてよい。 モナドを実装するために必要という応用がある。 オンラインで圏論を学ぶための教科書: 役に立つ読み物 関数プログラミングと関連が深い とくに,モナドを考えるために圏論が必須! 格的に学ぶには? オンラインで圏論を学ぶための教科書: 「圏と関手入門」 http://www.math.nagoya-u.ac.jp/~hasim... 100ページ以上あるオンライン入門書 圏論は面白い(1) メタグラフ : tnomuraのブログ 圏論は面白い(3) メタ圏 : tnomuraのブログ(2は存在しない) 圏論は面白い(4) メタ圏(2) モノイド : tnomuraのブログ 圏論は面白い(5)  関手 : tnomuraのブログ 圏論は面白い(6)  自然変換 :

    「圏論」は関数プログラミングの「モナド」に役立つ。入門PDF等のリンク集 - 勉強メモ (大学の講義動画や,資格試験の対策)