タグ

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

  • AtCoder ガチ言語 Haskell 🔥

    Haskell で AtCoder に入門しましょう

    AtCoder ガチ言語 Haskell 🔥
  • GitHub - graninas/software-design-in-haskell: Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.

    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 - graninas/software-design-in-haskell: Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.
  • Haskellのscan系関数を使いこなす | 雑記帳

    Haskellはリストを操作する関数を多数提供しています。map, filter, foldあたりが代表的で、これらは他の言語でもおなじみかと思います。 一方で、scan系関数(scanl, scanr)は他の言語ではあまり見かけない気がします。同じ関数型言語のSMLやOCamlにも標準では入っていないようです。 この記事では、scan系関数がどういう場合に利用できるかを紹介します。 scan系関数とは 定義と図解 scan系関数は、リストを元にして新しいリストを構築する関数です。新しいリストの要素は、与えられた初期値と関数を使って元のリストを途中まで畳み込んだものになります。「foldの途中経過を残す版」とでも言えば良いでしょうか。 型はそれぞれ次のようになります: scanl :: (b -> a -> b) -> b -> [a] -> [b] scanr :: (a -> b ->

  • Lensとは - Qiita

    Lensとは、初級者Haskellerの苦い思い出 さあさあ、やって参りました。 Haskell何個目かの鬼門にして、素晴らしく便利なアイツ、Lensの時間です。 初級者HaskellerにとってのLensといえば、「これを知らなきゃ初級者Haskellerにもなれない」と突然突きつけられて、何かと思って蓋を開ければ地獄のような型が覗く、恐怖と畏怖の対象でしょう。 調べてみても、様々な言葉で説明されるLensは、いかにもつかみどころのないものに思えます。 Lensはgetterとsetterのペア 参考: Lensの仕組みがわかった#lensを自作してみる レンズは余状態余モナドの余代数だった type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t Control.Lens.Combinators#t:Lens よ

    Lensとは - Qiita
  • Stateモナドを数学的に実装する - Qiita

    はじめに 記事では、関数型言語に触れているよくでてくる モナド について書きます。モナドとは何かを説明したり理解することは割と難しいと思うのですが、その理由の一つとしては、モナドという概念が 数学 の圏論に由来しているということにあると思います。何年も前にモナドを理解するために圏論を勉強したりしてみましたが、その中に出てくるモナドと、プログラミングにおけるモナドが当に同じものなのか、というのはしばらく疑問でした。あるとき、Stateモナド(状態モナド) を具体例として、それを数学的な定義に基づいて実装してみたことで、プログラミングと数学の関係がより明確になってモナドの理解が深まったように思うので、この機会にまとめてみます。 プログラミングと数学が密接に関係する面白い例の一つだと思うのですが、記事が長くなってしまいモナドについて興味がないと読むのは大変だと思います。適当に斜め読みしてもら

    Stateモナドを数学的に実装する - Qiita
  • Arrowを理解する - Qiita

    これはHaskell Advent Calendar その1 8日目の記事です。 前日の記事は@nobsunさんのTree: 親子関係の付け替えでした。 対象者 すごいH読んだ 型とか型クラスわかる hlintにArrow使えって怒られたことがある 反駁不可パターンはわかる Arrowとは プログラミングには純粋な関数ではないが、関数のような雰囲気を持った構成要素が存在する。 この記事ではこれを計算と呼ぶことにする。型クラスを使えば、こういった計算に共通する構造を見つけることで、インターフェイスを提供できる。こういった抽象度の高いインターフェイスを提供することの有用性は語るまでもないだろう。ざっくり言えば実はこれがArrowである。我々が呼吸するように使う(?)Monadもこれに類するものである。ArrowはMonadと違い、複数の入力を消費できる、入力値による選択が行える、フィードバック

    Arrowを理解する - Qiita
  • What I Wish I Knew When Learning Haskell 2.5 ( Stephen Diehl )

  • Haskell-jp wiki - Front Page

    ようこそHaskell-jp wikiへ! このサイトについて(現在は編集できない状態で公開しています!) このWikiはHaskell関連情報を日語でまとめるためのポータルサイトです。 2022年11月までgititというWikiエンジン(もちろんHaskell製)で運用されておりましたが、ホスティングサービスとして利用していたHerokuの無料プランが廃止されたことや、長期間編集される見込みがないことから、現在は静的サイトとして読み込み専用で公開しています。編集用のページや編集履歴にアクセスしても404 Not Foundが返ってきます。そのほか、多くのページはURLが変わってしまっている点にご注意ください。編集履歴を閲覧したい場合はGitリポジトリーにおける履歴からご覧ください。編集したい場合は今後はhaskell-shoenの利用をご検討ください。 コンテンツ メーリングリスト

  • Haskellで競技プログラミング IO編 - Qiita

    _この記事は2013年の情報オリンピック夏季セミナーの発表のために 動機 Haskellには競技プログラミングに使えるCoolな機能が沢山あります。 パターンマッチやプレースホルダ、パターンガード、柔軟な関数合成などです。 下はAtCoder Regular Contest #14のB問題に対する回答です。 再帰や場合分けがかなりシンプルに書けます。 import Control.Monad import Control.Applicative import Data.List main :: IO () main = do n <- readLn (w:ws) <- replicateM n getLine putStrLn $ case check [w] ws True of Nothing -> "DRAW" Just True -> "WIN" Just False -> "LO

    Haskellで競技プログラミング IO編 - Qiita
  • Haskellの代数的構造入門 半群・モノイド・環とは何か? - ログミーTech

    2018年11月10日、Haskell-jpが主催するイベント「Haskell Day 2018」が開催されました。純粋関数型プログラミング言語Haskellをテーマに、Haskellに興味のある人から入門者、ちょっとできる人まで、様々な層に向けたプレゼンテーションを行ったイベント。実務から研究まで、幅広いHaskellの事例を共有します。プレゼンテーション「Semigroupとは? Monoid? 環?」に登壇したのは、aiya000氏。講演資料はこちら Semigroupとは? Monoid? 環? aiya000氏(以下、aiya000):あいやと申します。今日は「Semigroupとは? Monoid? 環?」というテーマで代数についての発表をします。よろしくお願いします。 (会場拍手) 推しVimNeovimです。活動はTwitterGitHubなどをやっています。このスラ

    Haskellの代数的構造入門 半群・モノイド・環とは何か? - ログミーTech
  • 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 第2版

    紙書籍をお届けします(PDFがついてきます) PDFのみが必要な場合は、こちらのPDF単品をお求めください PDFは購入後すぐにダウンロード可能です 紙書籍は通常、ご注文から2~3営業日で発送します 年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくはお知らせをご覧ください プログラムが、手続きでなく、関数と型に見えてくる Graham Hutton 著、山和彦 訳 328ページ A5判 ISBN:978-4-908686-07-8 2019年8月2日 第1版第1刷 発行 翻訳者による補足情報があります(リンク) 正誤情報 Haskellは、1990年に誕生した歴史あるプログラミング言語です。強力な型推論を備えた、静的型付きで遅延評価の純粋関数型言語として知られています。Haskellを知ることは、こうした概念の背景にある計算機の理論を知り、それが

    プログラミングHaskell 第2版
  • Haskellらしさって?「型」と「関数」の基本を解説!【第二言語としてのHaskell】 - エンジニアHub|Webエンジニアのキャリアを考える!

    Haskellらしさって?「型」と「関数」の基を解説!【第二言語としてのHaskell】 第二言語としてHaskellを学ぶ道案内。開発環境の準備から、Haskellらしいプログラミングの考え方まで、Haskell-jpのigrepさんが丁寧に解説します。 こんにちは。Haskell-jpの山悠滋です。 この記事では、すでにプログラミング経験のある方向けに、第二言語としてHaskellを学ぶ道案内をしていきます。 環境の準備や、自明なサンプルプログラムの紹介にとどまらず、Haskellらしいプログラミングの考え方も伝えていく予定です。 Haskellについて Haskellというと、「関数型」というキーワードが思い浮かぶ方も多いと思います。 確かにHaskellは、すべての関数がカリー化されており、それらを組み合わせてプログラムを書いていく関数プログラミングがしやすい言語です。 しかし

    Haskellらしさって?「型」と「関数」の基本を解説!【第二言語としてのHaskell】 - エンジニアHub|Webエンジニアのキャリアを考える!
  • 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演算子の発音可能な名前はありますか? [operators] | CODE Q&A 問題解決 [日本語]

  • プログラマーのための圏論 (初級編:圏論とHaskell) カテゴリーの記事一覧 2ページ目 - bitterharvest’s diary

    6.5 双関手 1)関手としての積と余積 前々回の記事で、Haskellが用意している関手のリストを示した。 Prelude> :i Functor class Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b (<$) :: a -> f b -> f a {-# MINIMAL fmap #-} -- Defined…

    プログラマーのための圏論 (初級編:圏論とHaskell) カテゴリーの記事一覧 2ページ目 - bitterharvest’s diary
  • 箱で考えるFunctor、ApplicativeそしてMonad

    モナドについて勉強していて見つけた英語記事を翻訳してみました。 誤訳等あれば編集リクエストやコメントください 原文: Functors, Applicatives, And Monads In Pictures - adit.io ここに単純な値(value)があります。

    箱で考えるFunctor、ApplicativeそしてMonad
  • Chapters - Learn You a Haskell for Great Good!

    Introduction About this tutorial So what's Haskell? What you need to dive in Starting Out Ready, set, go! Baby's first functions An intro to lists Texas ranges I'm a list comprehension Tuples Types and Typeclasses Believe the type Type variables Typeclasses 101 Syntax in Functions Pattern matching Guards, guards! Where!? Let it be Case expressions Recursion Hello recursion! Maximum awesome A few m

  • Haskell - Wikibooks, open books for an open world

    This book has a collection for ordering a printed copy of this book for a fee. (edit) (help) Haskell is a featured book on Wikibooks because it contains substantial content, it is well-formatted, and the Wikibooks community has decided to feature it on the main page or in other places. Please continue to improve it and thanks for the great work so far! You can edit its advertisement template. Hask

  • Haskellには副作用がないのか? - あどけない話

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

    Haskellには副作用がないのか? - あどけない話