タグ

haskellに関するSWIMATH2のブックマーク (22)

  • Extensible EffectsとTagless Finalで実装するDI - Qiita

    これは FOLIO Advent Calendar 2017 14日目の投稿です。 HaskellでDIを実装する一番いい方法は何か、様々な手法を比較しながらベストな方法を探していこうと思います。 記事中のコードは記述を簡潔にするため実行に必要なGHC拡張やimportを書いていません。完全なコードは以下のgistに載せているので参照して下さい。 https://gist.github.com/lotz84/7207fa3a6b806807defd04e773f8dc78 易しい依存性の注入 DI(Dependency Injection, 依存性の注入)とは何でしょうか。Wikipediaから説明を引用すると、 依存性の注入とは、コンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターンである。英語の頭文字からDIと略

    Extensible EffectsとTagless Finalで実装するDI - Qiita
    SWIMATH2
    SWIMATH2 2022/02/16
    なんかすごい
  • Haskell入門

    Skip to the content. Haskell入門 従来の言語では問題を部分化する方法について概念的な限界がいくつかある。関数型言語はこれらの限界を押し広げるも のである。 なぜ関数プログラミングは重要か 関数プログラミングを習得するには,これまで命令プログラミングで培った技術はいったん忘れ,真っ白な気持ちで臨む必要があります。関数型の山を登るためには,命令型の山を降りなければなりません。 第1章 関数プログラミングは難しくない! Haskellは理解すれば理解するほどきれいに書けることを約束してくれます。信頼してください 常にパターンを探しましょう。単純になるとき、またその時だけそれらを抽象化するのです 辛抱強く抽象化を正しく理解しましょう。もしそれが出来たならすべてのことが魔法のようにつじつまが合うようになるでしょう。 実装そのものが設計図となります … Haskell Ma

  • 継続モナドによるリソース管理 - Qiita

    継続モナドって何に使うんだ問題に対する一つの例。 リソース管理の問題 プログラミングをやっていると必ずまとわり付いてくるのがリソース管理の問題です。ここで指すリソースというのは、ファイルのハンドルだとか、ソケットだとか、排他処理のためのロックだとか、グラフィックのハンドルだとかそういう話で、GCのない言語だとメモリの管理もこれに含まれるでしょうか。 言うまでもなく、リソースを確保した後はしかるべきタイミングで確実に解放してやる必要があります。しかし往々にして、現実のプログラムではリソースの解放漏れが発生してしまいます。単に解放するコードを書き忘れると言うのが一番単純でしょうもない理由ですが、それでも、C言語のようにリソース解放のための特別な仕組みを持たない言語では、これを徹底するのも結構骨の折れることだったりします。それはともかく、もう少し高尚な悩みとしては、例外との組み合わせで発生する解

    継続モナドによるリソース管理 - Qiita
    SWIMATH2
    SWIMATH2 2020/02/05
    へー
  • 代数的データ型と初等代数学 - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.その有用性ゆえに,近年では新たな言語の策定の際にその概念が輸出され,RustSwift などの言語にも採用されている. 「代数的データ型とはなんですか?」と問われたときには―問われたことがないのでわからないのだが―おもむろに ghci か utop を立ち上げて,解説を始めるのではないかと思う.ひとしきり解説をした後,「つまり直積の直和なんですよ〜🙌✨」と言って話を締めくくるだろう. int 型や float 型など,「メモ

    代数的データ型と初等代数学 - ryota-ka's blog
    SWIMATH2
    SWIMATH2 2018/07/09
    同型とはなんですか?
  • Functional architecture is Ports and Adapters

    Functional architecture is Ports and Adapters by Mark Seemann Functional architecture tends to fall into a pit of success that looks a lot like Ports and Adapters. In object-oriented architecture, we often struggle towards the ideal of the Ports and Adapters architecture, although we often call it something else: layered architecture, onion architecture, hexagonal architecture, and so on. The goal

    Functional architecture is Ports and Adapters
  • Arnaud Bailly - Anatomy of a Haskell-based Application

    This is the first post of a series I am planning to write about my experience developing software as CTO of Capital Match, a Singapore-based startup providing a peer-to-peer lending marketplace for Small and Medium Businesses and private and corporate investor. This post is about the design and architecture of the system itself, the choices and tradeoffs that were made, whether good or bad. In the

  • Operator Glossary

    One aspect of Haskell that many new users find difficult to get a handle on is operators. Unlike many other languages, Haskell gives a lot of flexibility to developers to define custom operators. This can lead to shorter, more elegant code in many cases. For example, compare these three equivalent pieces of code: v1 = mappend (mappend "hello " "there ") "world" v2 = "hello " `mappend` "there " `ma

    Operator Glossary
    SWIMATH2
    SWIMATH2 2018/01/31
    HaskellのOperatorまとめ いつも分からなくなるので助かる
  • Applied Haskell Syllabus - FP Complete

    Applied Haskell is a commercial training program focusing on teaching intermediate Haskell. The goal is to help someone move from knowing Haskell basics to being able to write commercial software, with enough knowledge to pick up any new skills needed on demand. If you’re new to Haskell, please check out our learning page for introductory material. The content below is freely available. If you’re

    Applied Haskell Syllabus - FP Complete
    SWIMATH2
    SWIMATH2 2018/01/31
    FP CompleteによるHaskellの道標、良さそう
  • Haskellライブラリ所感2016 - syocy’s diary

    (これは Haskell Advent Calendar 2016 の7日目の記事です) 今年使ったり調べたりした Haskell ライブラリを広く紹介していく企画です。 あくまで今年使ったものなので新しいものばかりではないです。 また記事の性質上、紹介するものが偏っていてもご容赦ください。 Hackage にはすごい数のライブラリが登録されていて、 頼もしいことですが目が回りそうにもなってしまいます。 この記事が Haskell のライブラリを調べる上での指針になったら幸いです。 なおこの企画と方向性が似ているものとして State of the Haskell ecosystem ( 2016年2月版 ) があります(英語)。 これは Haskell を取り巻く環境を知る上で非常によいドキュメントです。 ただ各ライブラリについては名前を挙げるだけにとどめられています。 この記事ではもう

    Haskellライブラリ所感2016 - syocy’s diary
  • Awesome Haskell | LibHunt

    Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    Awesome Haskell | LibHunt
  • Haskell-jp wiki - Links

    Haskellに関する日語のリンク集 建設中です!どんどん追加・削除しましょう! 入門系 Haskell 超入門 - Qiita 1から学ぶHaskell: プログラマ向けのHaskell入門 こわくないHaskell入門(初級) - Qiita Haskellらしさって?「型」と「関数」の基を解説!【第二言語としてのHaskell】 ドキュメントの翻訳 GHC ver. 7.8.2 GHC: こちらはGHC 8.0.2に対応してますが、2017/2/19現在まだ工事中。 The Typeclassopedia Monad Transformers Step By Step 言及している原文へのリンクは切れている。現在はこちら Megaparsec tutorial from IH book 翻訳記事 Haskell 初心者へのアドバイス (和訳) - Qiita Haskell のア

    SWIMATH2
    SWIMATH2 2018/01/31
    まとめ的な
  • Reddit - Dive into anything

    The Haskell programming language community. Daily news and info about all things Haskell related: practical stuff, theory, types, libraries, jobs, patches, releases, events and conferences and more... Hello haskellers and other functional developers! My name is Alexander Granin, and I’m glad to present you 5 chapters of my book “Functional Design and Architecture”. I was working on it during the w

    Reddit - Dive into anything
  • 2017 state of Haskell survey results

    2017 state of Haskell survey results by Taylor Fausak on November 15, 2017 I am excited to announce the results of the 2017 state of Haskell survey, published by Haskell Weekly! To the 1,335 people that responded to the survey: Thank you! I appreciate your feedback. You can download the anonymized responses as JSON or CSV. The responses are licensed under the CC BY 4.0 license. November 29, 2017 u

    2017 state of Haskell survey results
    SWIMATH2
    SWIMATH2 2018/01/31
    ちょっと面白い。
  • Haskellの入門から中級者になるまでの指針 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? プログラミング言語の学習は一般に大変である。 最初にどのようなことをすればいいのか、どのをよむべきなのか等疑問は尽きない。マイナーな言語で情報が少なければなおさらである。 この記事では諸事情でHaskellに入門することになった方にむけて、どのように勉強していくか、参考にすべきや記事を紹介する。 より良い指針にするためにも、指摘、感想等はコメントや私のTwitterアカウント(@Lugendre)に投稿して頂けるとありがたい。 入門〜初心者 環境構築 まずどんなプログラミング言語においても、プログラミングをする環境が必要である。Ha

    Haskellの入門から中級者になるまでの指針 - Qiita
    SWIMATH2
    SWIMATH2 2018/01/31
    Haskellまとめ いろんな情報あって良い
  • Haskellや周辺ツールについてのリンク集 - Qiita

    なぜ書こうかと思ったのか Haskellに関する情報(例えば関数型、モナド、圏論)はググればすぐ見つかります。ですがHaskellの周辺ツールに関する情報はなかなか見つかりません。なので今回はその周辺ツールの情報をまとめてみました。もし以下に挙げる周辺ツールのほかに周辺ツール、おすすめ参考資料があるなら教えてください。追記していきます。 Hackage Hackage : Haskellのパッケージ検索サイト stackを使ってHackageにパッケージをアップロードする : Hackageへの簡単なアップロード方法 Hoogle Hoogle : Haskell+Google Hoogleの使い方(マニュアル翻訳) : Hoogleの簡単な使い方について Hoogleをローカルで使う : Hoogleをローカルに使う方法。少し古いためcabal installをstack install

    Haskellや周辺ツールについてのリンク集 - Qiita
    SWIMATH2
    SWIMATH2 2018/01/31
    Haskell まとめ
  • Haskell

    Skip to the content. Haskell Haskell - An advanced purely-functional programming language 1990 – サイモン・ペイトン・ジョーンズ、ポール・フダック、フィリップ・ワドラー、デミ・ムーアの夫、ならびに動物の倫理的扱いを求める人々によって構成される委員会により、遅延評価を行う純粋な関数型言語Haskellが作られる。副作用の制御に使われるモナドの複雑さのため、Haskellには抵抗を持つ人々がいる。ワドラーは批判を和らげるために、こう語っている。「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」 出典: 不完全にしておよそ正しくないプログラミング言語小史 Index Haskell: 純粋関数型プログラミング言語 環境構築/エコシステム 入門/チュートリアル 基文法 再帰 データ

    SWIMATH2
    SWIMATH2 2018/01/31
    Haskell情報awesome的なもの?
  • Lenses

    Haskell's Lens type generalizes properties (i.e. accessors/mutators) found in other programming languages. For example, C# provides language support to treat properties as ordinary variables: class Point { public double x { get; set; } public double y { get; set; } } class Circle { public Point center { get; set; } public double radius { get; set; } } public void goRight(ref Circle c) { c.center.x

    SWIMATH2
    SWIMATH2 2017/06/23
    Lensというのを使うとフィールドへのアクセスがきれいになるらしい(?)。圏論出てきてよく分からんくなった
  • Haskellの静的解析ツール HLint を使おう - Qiita

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

    Haskellの静的解析ツール HLint を使おう - Qiita
  • Introduction to Web Development with Spock - Qiita

    Spock is a lightweight Haskell web framework inspired by Ruby's Sinatra. It provides a full toolbox including everything to get a quick start into web programming using Haskell. Spock Features Fast routing JSON Sessions Cookies Database helper CSRF protection The Spock package Hello World! Spock-0.11.0.0 {-# LANGUAGE OverloadedStrings #-} module Main where import Web.Spock import Web.Spock.Config

    Introduction to Web Development with Spock - Qiita
    SWIMATH2
    SWIMATH2 2016/09/18
    sinatraインスパイアのhaskell軽量webフレームワーク。見てる感じサクサク出来そうだったしたのしそう
  • Atom EditorでHaskell - Qiita

    如法会 1の資料 その1です。 Atom EditorでHaskellの環境を整える記事はいくつかありましたが、ちょっと古げなので書いておきます。 最近はstackをインストールするだけでghcが使える。 なので、まずは、stackをインストールする。OS Xの場合をかいておく。

    Atom EditorでHaskell - Qiita