タグ

Haskellに関するwat-aroのブックマーク (18)

  • Higher-Kinded Data (HKD) について - Qiita

    これは Haskell Advent Calendar 12 日目の記事です。今日は 12/12+12 日です。 今回は、最近流行りの Higher-Kinded Data (HKD) について簡単に紹介したいと思います。 // 以前、某社の採用ビアバッシュ的イベントで、Haskell ほとんど知らない人の中で HKD の話をした際のスライドを公開し忘れていたので、せっかくなので多少手直しして公開します。 Haskell Day 2019 でも、@fumieval さんによる HKD のトークがあったので、そちらも参考にすると良いと思います。 https://twitter.com/fumieval/status/1193016480574500865 設定はモノイド Haskell 界隈には設定はモノイドであるべきという一派があります。 次のようなプログラムの設定を表すデータ型を例にして

    Higher-Kinded Data (HKD) について - Qiita
  • Haskell+LLVM構成で作る自作コンパイラ - Qiita

    Haskellのパーサコンビネータmegaparsecと、コンパイラ基盤であるLLVMを使って、コンパイラを作ってみます。モチベーションとしてはコンパイラはC/C++を使って作るのが定番ですが、型の恩恵を受けながら開発したいなあということでHaskellでも作れないか調べてみました。 コンパイラ作成の流れ パーサコンビネータのMegaparsecで四則演算のパーサを作成します。 LLVM IR構築のライブラリであるllvm-hs-pureでLLVM IRのコードへ変換するコンパイラを作成します。 簡単な式をコンパイルしてLLVMのインタープリタlliで実行します。 LLVMのコンパイラllcでアセンブラを生成してgccでバイナリまで生成します。 環境 あらかじめ以下をインストールしておいてください。 stack 1.9.3 Haskell 8.6.5 LLVM 9.0.0 コマンドラインで

    Haskell+LLVM構成で作る自作コンパイラ - Qiita
  • Thinking with Types by Sandy Maguire [Leanpub PDF/iPad/Kindle]

    Sandy might best be described somewhere between independent researcher and voluntarily-unemployed bum. At the ripe old age of 27 he decided to quit his highly-lucrative engineering job and decide to focus more on living than on grinding for the man. It's what you might call a work in progress. He regularly writes about Haskell and Agda at reasonablypolymorphic.com. Preface Acknowledgments Introduc

    Thinking with Types by Sandy Maguire [Leanpub PDF/iPad/Kindle]
  • Beating C with 80 lines of Haskell: wc

    Despite the click-bait title I hope you'll find this post generally illuminating, or at the very least a bit of fun! This article makes no claims that Haskell is "better" than C, nor does it make claims about the respective value of either language, or either implementation. It's simply an exploration into high-performance Haskell, with a few fun tricks and hacks along the way. You can find source

    Beating C with 80 lines of Haskell: wc
  • HIE Files - coming soon to a GHC near you! — The Glasgow Haskell Compiler

    wz1000 - 2019-06-26 When GHC compiles your programs, it has to work out a bunch of information - it figures out where stuff is defined, assigns types to expressions, solves constraints and so on. However, all this information is not easily accessible to you after GHC is finished. To get your hands on this, you need to set up a GHC environment, and tediously use the GHC API to extract whatever info

    wat-aro
    wat-aro 2019/07/12
    SQLite使うのか。良さみ
  • haskell-shoen

    🎌ようこそ🎌 / kakkun61 / Haskell の歩き方 / リンク / パッケージティアリスト / Wiki のライセンス / ロゴ / チャット / Slack 管理者へのメモ / 文字コードを変換する / mrsekut / 論理学 / fumieval / barbies-th / Haskellのつらいところ / 組織紹介 / 避けるべきこと / HKD / Recursio

    haskell-shoen
  • Haskellの種(kind)について (Part 2) - Haskell-jp

    種の仕組みとそれに付随する言語拡張についてPosted by mizunashi-mana on September 18, 2017 Haskellには種(kind)という仕組みがあります。大雑把に言ってしまえば、「型の型」を実現する仕組みです。この仕組みについて、あまり情報が出回っていないようなので、解説記事を残しておこうと思います。なお、前編と後編に分かれていて、この記事は後編になります。前編はこちらになります。 この記事は、Ladder of Functional Programming (日語訳)の FIRE LUBLINE(ADVANCED BEGINNER) を対象に、Part 1の続きとして、種に付随するGHC言語拡張やパッケージを紹介するものです。 なお、特に断らない限り、対象としてGHC8系を設定しています。stackを使ってる方はresolverをLTS Haske

    Haskellの種(kind)について (Part 2) - Haskell-jp
  • アプリカティブ関手ってなに?モノイド圏との関係は?調べてみました! | 雑記帳

    この記事は Category Theory Advent Calendar 2018 7日目 かつ Haskell (その2) Advent Calendar 2018 7日目の記事です。 Category Theory Advent Calendar 2018の6日目はcorollary2525さんの「随伴は あらゆるところに 現れる」、8日目は空席、9日目はt_uemura669101さんの「トポスと高階論理」です。 Haskell (その2) Advent Calendar 2018の6日目は空席、8日目はtakoeight0821さんの「Type defaultingについての初級的な解説」です。 この記事はどういう記事か 圏論の方から来た人向け: デカルト積やテンソル積の一般化である「モノイド積」の話と、「内部ホム」の話をします。文献によっては内部ホムはモノイド積の右随伴として導

  • Circle CI 2.0 の設定

    Posted on July 21, 2018 authored by Shinya Yamaguchi Last Updated July 23, 2018 はじめに Haskell プロジェクトの多くは Travis CI を使って CI を回しています。 しかしここ最近、いくつかのプロジェクトで Circle CI の利用が進んでいるように思います。 僕も社内のプロジェクトでは Circle CI を使っています。実際に Circle CI を使っていて個人的に良いなと感じたのは以下の4点です。 docker イメージを指定できる プライベートリポジトリで利用できる travis より速い気がする キャッシュが不変 キャッシュの動作に関しては travis とは逆なので少し違和感があるかもしれませんが、キャッシュでCIが失敗するということが無くなるので、非常に良いと思います。 今回は

  • HaskellでDiscordのBotを作る - モナドとわたしとコモナド

    Discordはゲーミング向けのテキストチャットと音声通話を兼ねるプラットフォームであり、「テキストチャンネル」と「ボイスチャンネル」の二種を好きなだけ作ることができる。もちろん音声を全チャンネルに常時垂れ流すわけには行かないので、通話するにはボイスチャンネルに参加するという手順を踏む必要がある。しかし、例えば誰かがやっているゲームに混ざろうとしてボイスチャンネルに参加しても、チャンネル外のユーザーにはいかなる通知も発生しないため、気づかれないままのことがよくある。 そこで、ボイスチャンネルに参加したとき、テキストチャンネルにその旨を投稿するボットを用意すれば、気軽に通話の合図を送れる。全員に通話の意思を表明でき、Skypeの着信のように邪魔にもならないので、少人数のグループにとって極めて有用である。 Discordは柔軟なAPIを用意しているため、比較的容易にそのようなボットを開発できる

    HaskellでDiscordのBotを作る - モナドとわたしとコモナド
  • haskell.gby

  • 素晴らしき HLint を使いこなす

    Posted on January 29, 2018 authored by Shinya Yamaguchi はじめに HLint は haskell-src-exts を使って実装されている静的解析ツールです。 HLint を使えば github などを使って PR ベースで開発する場合のコードレビューでこんな事を言わなくて済みます。 fromJust とかの部分関数は使わないで! maybe 関数って知ってる? この言語拡張って当に使ってるの? undefined まだ残ってるじゃん! 嬉しいことに Travis CI や CircleCI などで一度設定するだけなので導入もお手軽です! また、最近知ったのですが、プロジェクト内で使って欲しくない関数なども HLint によって検出可能です。 さらに、独学で Haskell の学習を進めている人は HLint が素晴らしい教師役とな

    wat-aro
    wat-aro 2018/01/29
    自作関数のこれを使えとかも設定できるのか。すごい。
  • 週刊 代数的実数を作る

    トゥート Feed このページについて これは、筆者 (@mod_poppo) が代数的実数をプログラミング言語上で実装する過程を、一連の記事として連載するものである。#16 までは「週刊」ということで定期的な連載を目指していたが、それ以降は不定期連載となる。 書籍化 2018年10月8日の「技術書典5」にこの連載を書籍化したものを出しました(加筆訂正あり)。詳しくは 技術書典5に代数的数を作るを出します を参照してください。 BOOTHでPDF版を購入・ダウンロードできます(1000円)。詳しくは以下のリンク先を参照: 「代数的数を作る 多項式の根と因数分解のアルゴリズム」 目次 #0 イントロダクション (2017年10月14日) 計算可能実数 #1 一変数多項式環 (2017年10月14日) 一変数多項式環, ホーナー法, ユークリッドの互除法, 係数膨張 #2 実根の数え上げ (

  • Haskell Development

    Tips 完全なリビルド おすすめの開発方法 script interpreter + stack script でスクリプティング! config.yaml のよくある設定 ghc-options の推奨設定 HDD の容量が少なくなってきた時 最小のプロジェクト ファイル単位で ghc-options を指定する方法 カスタムスナップショットの紹介 namespaced templates プロファイルの取得方法 extra-deps に github の短縮形が指定できるようになります stack-2.1 から location に extra-dep を指定できなくなります アプリケーションのバックトレースを取得する cabal コマンドとの対応表 stack サブコマンド stack build stack test stack run stack exec stack clea

    wat-aro
    wat-aro 2018/01/06
    [stack] わかりやすい
  • Haskellには副作用がないのか? - あどけない話

    ある人は、Haskell には副作用がないと言う。また、別のある人は Haskell には副作用があると言う。Haskell を学ぶ者にとって、こういった意見のい違いが、Haskell を得体の知れない言語にし、学習の障壁となっているかもしれない。そこで、この記事では、なぜこのような意見の相違が生まれるのかについて説明したいと思う。 向心力か遠心力か? 僕は高校三年になって受験勉強をするまで、物理の運動方程式が得体の知れないものに思えていた。 例として円運動を考えよう。ある説明では、円運動をしている物体には向心力が働いていると説明されている。また別の説明では、遠心力が働くと説明されている。一体、どういうことだろう? 受験勉強でたくさんの問題を解いて、ようやく分かった。これらの説明はどちらも正しい。すなわち、観測者がどこにいるかによって、説明の仕方が異なるのだと。 観測者が円運動をする物体

    Haskellには副作用がないのか? - あどけない話
    wat-aro
    wat-aro 2017/05/23
    Haskellに副作業があるか否かは評価器・実行器・環境のどこまで含むかで変わるって話なのか
  • Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD

    (編注:2016/7/27、頂いたフィードバックを元に記事を修正いたしました。) 学生たちから、次に学ぶ言語はどれがいいのかとよく聞かれます。IT業界で働きたい人にお薦めするのは、現在盛んに使われている言語です。C++Java、C#はもちろん、PythonRubyPHPPerlなども挙げられるでしょう。 一方、向学のためという人や、学術研究や起業に関心がある人にとって、次の言語を選ぶ基準となるのは、就職に有利かではなく言語の表現力でしょう。学術研究や起業活動を行うには、プログラマとしての能力を何倍にも高める必要があります。そして、(おそらく)確立されたコードベースを扱った経験はないでしょうから、手元にあるタスクにとって最適な言語を自由に選ぶことができます。 この記事では、勉強に適したHaskell、Scala、ML、Schemeという4つの言語を、私の好きな特徴や参考資料のリストと

    Haskell、Scala、ML、Scheme:あなたが次に学ぶ関数型言語 | POSTD
  • Functional Programming lecture notes.

  • https://www.cse.iitk.ac.in/users/ppk/teaching/cs653/notes/single-page.lhs.pdf

  • 1