タグ

Haskellに関するmoritataのブックマーク (40)

  • Haskell書いてるときになんとなく気をつけていること - LugendrePublic

    信頼性はない 都市伝説かもしれん 大体枕詞に特別な理由がなければがつく 思いついたら徐々に更新する それは違うよってことがあったら @Lugendre まで ghc 8.6.5の話(8.8.1は仕事で使ってなくてな......) コンパイル通るかの確認だけなら最適化オプションO0でコンパイルする stackでいうとstack build --fast 動かすときはO2ビルドしたほうがいいが,インライン展開に5億年消費する なんならこのくらいは静的解析に任せてもいいが,でかいプロジェクトだと一定時間動いてハングアップするのしか世の中にないのでオワリ VSCode のせい説もある ghcideに期待 haskell-language-serverがすべてを解決した CIするときは必ずキャッシュする 毎回一から依存関係やGHCのビルドが走って余裕で1時間超えるようになるので データ構造のフィール

    Haskell書いてるときになんとなく気をつけていること - LugendrePublic
  • Haskell〇〇多すぎ問題 - LugendrePublic

    初心者が入門書を読んでさぁ書くぞとなったときにつまずくところのうちの一つが,同じようなライブラリが多すぎ問題である. ということでそういうライブラリの話をしよう. 例によって例のごとく間違っていること書いてあるかもなので報告よろしく. モナド変換子 Haskellで実用的なプログラムを書く上で避けて通れないものの一つにモナド変換子がある.こいつはなにかというと,簡単に言えば,モナドを合成してでかいモナドを作るやつである.人間がおおよそ使うであろうモナド変換子はライブラリで提供しているので,それらを組み合わせてお望みのモナドを作ろうとするわけだが,そこに立ちはだかるのがtransformersとmtlである. transformersとmtl transformersはlift という下位のモナドのアクションをでかいモナドのアクションに持ち上げてくれるメソッドが定義されたMonadTrans

    Haskell〇〇多すぎ問題 - LugendrePublic
  • HaskellとElmの会社をつぶしてUXハッカーになった話 - Qiita

    はじめに 去年の9月にこれまで4年ほど経営していた会社を解散しました。 「会社をつぶす」と聞くと、なんだか良くないことに聞こえますが、実はこの解散は前向きな理由で決断したものです。 解散理由が珍しいだけでなく、会社を作った経緯も、経営方針や採用技術についても、なかなかほかでは見られないものだったため、興味を持ってくださる方も多く、記事にして残すことにしました。 これから事業を起こそうとされる方、なかなか自分にあった活躍のしかたが見つからない方、世の中のあり方に思うところがある方にとって、多少でもお役に立てるものになれば幸いです。 いまは何をしているのか 法人をたたんだ現在は「UXハッカー」として生きています。 これは、UX = User eXperience (ユーザーの体験) の概念を独自に拡張し、世の中のあらゆるUXを改善するお仕事です。 UXといえば、最近「UXデザイナー」という職種

    HaskellとElmの会社をつぶしてUXハッカーになった話 - Qiita
  • Haskellの型クラスについて | mrsekutの備忘録

    NewsLearn more about the company, PR and product updates here.

    Haskellの型クラスについて | mrsekutの備忘録
  • Haskell 情報収集術 - Qiita

    この記事は Haskell (その2) Advent Calendar 2018 一日目の記事です。 はじめに この記事では Haskell の フレッシュ で モダン な情報について どこ を探したら良いんだろう? どんな 情報があるんだろう? という知見を共有できたらと思います。 Haskell を業務で使おうとしたときに書籍の知識だけでは不十分なので、これから色々調べてみようかなと思っている人向けです。(バリバリ使ってる人にとっては、新しいことは無いと思います) また、Haskell がどんな企業で使われているか知りたい人は erkmos/haskell-companies に一覧があるのでこちらをご参照ください。 Asahi Net (Japan) Facebook GitHub IOHK (ブロックチェーン) JP Morgan Kaspersky Lab Oracle Labs

    Haskell 情報収集術 - Qiita
  • Haskell's kind system - a primer · dcastro

    Haskell's kind system - a primer 17 Oct 2018 This post is available in Chinese here, thanks to JulyTreee. In this post we’ll explore Haskell’s kind system, the similarities between types and kinds, and show how these can be leveraged to write safer and more reusable code. Here’s what’s in store for today: Types and Kinds Data constructors and type constructors Type signatures and kind signatures H

  • 量子プログラミング言語 - Wikipedia

    量子プログラミング言語(りょうしプログラミングげんご、英: Quantum programming language)とは量子アルゴリズム(英語版)の表現を実現するプログラミング言語の総称である[1]。量子プログラミング言語は、プログラマーがプログラミングのツールとして使うことを意図したものではなく、研究者の量子コンピュータの振舞いの理解を促進し、研究者が量子アルゴリズムを形式的に論ずるツールとして用いることを意図したものである。 量子プログラミング言語は2つの主要なグループに分けることができる。すなわち、命令型量子プログラミング言語(imperative quantum programming languages)と関数型量子プログラミング言語(functional quantum programming languages)の2つである。 命令型量子プログラミング言語のうち、もっとも有

  • "Learn You a Haskell for Great Good!" を翻訳しました - 純粋関数空間

    [@nushio](https://twitter.com/#!/nushio)こと村主さんと Learn You a Haskell for Great Good! を翻訳しました。 「すごいHaskellたのしく学ぼう!」というタイトルで、 5月22日、オーム社様より発売予定です! 詳しい情報は http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06885-0 こちら。 入門書としての出来の良さに惚れ込んで原著者の Miran Lipovača さんに 翻訳したい旨を伝えたのが発端でした。ちょうど去年の夏頃でしたか。 そうこうしているうちに、オーム社の鹿野さんから出版のお話を頂いて、 トントン拍子で進んで行きました。 翻訳作業の方はトントン拍子とはいかず、 関係者の皆様にはご迷惑をお掛けしました。 ともあれ、完成しました。5

  • Learn You a Haskell for Great Good!

    Hey yo! This is Learn You a Haskell, the funkiest way to learn Haskell, which is the best functional programming language around. You may have heard of it. This guide is meant for people who have programmed already, but have yet to try functional programming. The whole thing is completely free to read online, but it's also available in print and I encourage you to buy as many copies as you can aff

  • GHCによるHaskellの3つの実行方法とHello World - Cutting-Edge Programming

    昨日のエントリーでHaskell処理系であるGHCをインストールしたので、実際にこれを使ってみましょう。 まずはオーソドックスに、ソースコードを作成してコンパイルしてみます。(Haskell P.17) hello.hs main = putStrLn "Hello, World!" コンパイルして、実行します。 $ ghc -o hello hello.hs $ ./hello Hello, World! おおおおお、表示出来ましたね!(某サイト風 笑) さて、GHCには普通にコンパイルするだけではなく、ほかにインタプリタと対話式の実行方法があります。 例えば、インタプリタはコンパイルせずにちょっとソースコードを試してみたいとき、対話式の実行方法(Rubyではirbと言うコマンドがありますね)は、ちょっとした実験をしてみるときに便利です。 では、インタプリタを実行してみましょう。コマン

    GHCによるHaskellの3つの実行方法とHello World - Cutting-Edge Programming
  • Haskellの父Simon PJ氏、GHCの内部実装について日本のHaskellerと激論を交わす

    プログラミング言語Haskellの処理系「GHC」(Glasgow Haskell Compiler)のメイン開発者であり「Haskellの父」と呼ばれるSimon Peyton Jones(Simon PJ)氏(現在の所属は米マイクロソフトリサーチ)が2016年9月17日に来日し、東京で開催されたイベント「Haskell Day 2016」で講演した。このイベントにはHaskellに興味がある、あるいは業務で利用しているといった100人以上の技術者が参加しており、同氏はそうした技術者とGHCの内部実装や最適化について熱い議論を交わした(同イベントに関するTwitterの発言)。 同氏は下も履いていない裸足で、常に大きな身振りで熱弁をふるった。参加者が黙って聞いていると「質問はないのか」と催促。途中からは参加者から活発に質問が飛び出すようになり、2時間たっぷり熱い議論が繰り広げられた

    Haskellの父Simon PJ氏、GHCの内部実装について日本のHaskellerと激論を交わす
  • Python基礎講座(はじめに) - Qiita

    この記事を書いた動機 僕の住む静岡県では、2010年から「静岡Developers勉強会」という ITエンジニアを対象とした勉強会が開催されています。 2010年:「Programming in Haskell」 2011年:「JavaScript: The Good Parts」 2012年:「HTML5&CSS3実践入門」 2013年:「入門 機械学習」 2014年:「実践 コンピュータビジョン」 昨年の「実践 コンピュータビジョン」ではPythonを使用したため、 多くの人に勉強会に参加してもらうために、Pythonの基を学べる スライドを作成しました。 その後、勉強会に参加したメンバーから、「自分もそのスライドの発表を聞きたい」と 要望があり、せっかく初心者用の資料を作成したのならば、Webで公開したほうが 多くの人が見ることが出来て良いのではないかと考え、今回Qiitaを利用し

    Python基礎講座(はじめに) - Qiita
  • Haskellでの合成可能なオブジェクトの構成とその応用

    Haskellでの合成可能なオブジェクトの構成とその応用 木下郁章, 山和彦, 2015 Haskellで状態を管理する際は、 一般的に代数データ型や型クラスが用いられるが、 データが拡張できないか、動的な性質を持たない。 そのためHaskellは、 複雑な状態を扱う問題領域には適していないと考えられてきた。 一方で、一般的なオブジェクト指向言語では、 オブジェクトを提供することでこの問題領域で成功を収めている。 論文では、Haskellの言語仕様を変更することなしに、 オブジェクト指向言語から着想を得たオブジェクトを実現する。 論文で提案するオブジェクトは圏を構成し、合成を用いて継承を表現できる。 また、終了する運命にあるオブジェクトやストリーミングなどに応用でき、 複雑な状態を扱うゲームの実装にも使われている。 論文をダウンロード(PDF) PPL 2015 発表スライド ここに

  • ScalaプログラマのためのHaskell入門

    Scala Matsuriで話したScalaプログラマのためのHaskell入門のスライドです。Read less

    ScalaプログラマのためのHaskell入門
  • 関数プログラミング実践入門 - xuwei-k's blog

    著者の人と直接的な面識はそれほどない(twitter上では知ってたし会話したことあるはず)のに、ある日突然この(の電子書籍版)いただきました。ありがとうございます! というわけで、頂いてから結構期間空いてしまって申し訳ないんですが、感想書きました。 電子書籍はここから買えるよ 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行(ソフトカバー)この商品を含むブログ (8件) を見る まず著者の方のblog貼っておきますね http://notogawa.hatenablog.com/entry/2014/11/08/155402 さて、あくまで個人的に読んだ印象を書いてみます。 まずこのの1番の大きな特徴としては 「関数プログラミングという

    関数プログラミング実践入門 - xuwei-k's blog
  • モナド入門以前 - Qiita

    前書き これはモナドチュートリアルではない、だろう。 この文章を書く動機は、モナドを知らない人がモナドという未知の概念に期待しているものが根的にずれているかもしれないという懸念である。 命令型言語でプログラミングを覚えた人がモナド、もしくはHaskellや関数型言語(と言われる言語)を学習する際にしばしば受ける助言はこうだ: 「命令型言語で今まで習ったことを全て忘れて取り組むと良いよ」 この助言はそこまで外していないかもしれないが、雑である。 いつか僕の友人がこのようなことを言った: 「プログラマがチームで働く時、必要なのは相手を思いやる気持ちだよね」 この発言は恐らくそこまで外れてはいないが、思いやりで全てを解決しようとすると、全てのコストが非常に高くなる。個々の問題へ目を向け、それぞれの解法を知っておくことによってコストは低くすることが出来ると僕たちは知っている。まあ友人はそんなこと

    モナド入門以前 - Qiita
  • Haskellのlensの使い方 (基本) - みゆっきのにっき

    ekmett先生のlensに関して Lens'は便利に使えはするけど、Prism,Iso,Traversal,Foldみたいなのは触ったことがなかったので調べた。 Lensの利用 1 import Control.Lens して 1 2 3 4 5 6 >>> ("hello",("world","!!!")) ^. _2 . _1 "world" >>> ("hello",("world","!!!")) & _2 . _1 .~ 42 ("hello",(42,"!!!")) >>> ("hello",("world","!!!")) & _2 . _1 %~ map toUpper ("hello",("WORLD","!!!")) みたいに使う。優先順位は以下のようになっている: 1 2 3 >>> ("hello",("world","!!!")) ^. (_2 . _1) >>

    Haskellのlensの使い方 (基本) - みゆっきのにっき
  • 機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...

    HHVM の話を聴いてからというもの、VM というものにどうにも興味がわいて仕方がない今日この頃。世の中の言語処理系も中身は VM だったりするわけで、そもそも VM ってどうやって作るのかな − とか考えてたら @riywo PDP-11のVM作って、Unix V6動かせば、一石何鳥になることやら — sakamoto.kazuki (@splhack) October 1, 2014 というご意見をもらって、初めて PDP-11 というものを調べ始めました。UNIX V6とかを買って読み始めてみたり、言語処理系の作り方のにも手をだしてみました。 PDP-11/UNIX V6 の勉強会があった そんな中、@7shiさんが主催されている「池袋バイナリ勉強会」の存在を知りました。なんと、ついこの間まで PDP-11 の逆アセンブラ(機械語のバイナリからアセンブリ言語を出力する)を作っ

    機械語の勉強会に参加したので8086の逆アセンブラをGoで書いてみてる - As a Futurist...
  • HaskellでASTからのコード生成(1) Writer+Stateモナドによる構造化 - プログラミングの実験場

    前のポストでGADTを使って型付きの抽象構文木(AST)を表現する方法について書いたが、ここではそのASTから他の言語のコード生成する方法について調査・検討した結果を記す。@keigoiさんの記事(http://d.hatena.ne.jp/keigoi/20111206/haskell_tagless_dsl)に触発され、一部借用したものである。なお、今回のコード生成の方法論はASTの型付き・型なしの区別にかかわらず使える。 MatlabのDSL in Haskell 今回例として扱うのは、Matlab(行列計算言語・統合環境)の行列計算を表現するようなDSL。最小構成として、2次元行列の加減乗算と要素の取り出しを表現したい。(Matlabの文法の簡単な説明はこれなどを参照。 http://www.math.meiji.ac.jp/~mk/labo/text/matlab/node4.h

    HaskellでASTからのコード生成(1) Writer+Stateモナドによる構造化 - プログラミングの実験場
  • あどけない話

    In typical UDP programming, unconnected sockets are used both in the client and server sides. sendto() is used to specify a peer address while recvfrom() is utilized to receive a peer address. In the quic library in Haskell, I used connected sockets for performance reasons. If a connected socket is created for a QUIC connection, recv() can receive data from a specific peer. This means that data is

    あどけない話