タグ

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

  • とほほのHaskell入門 - とほほのWWW入門

    概要 Haskellとは 関数型言語 純粋関数型言語 インストール Haskell Stack Hello world 基 予約語 コメント ブロック レイアウト 入出力 型 変数 数値 文字(Char) 文字列(String) エスケープシーケンス リスト([...]) タプル((...)) 演算子 関数 演算子定義 再帰関数 ラムダ式 パターンマッチ ガード条件 関数合成(.) 引数補足(@) 制御構文 do文 let文 if文 case文 where文 import文 ループ データ型 データ型(列挙型) データ型(タプル型) データ型(直和型) 新型定義 (newtype) 型シノニム (type) 型クラス (class) メイビー(Maybe) ファンクタ(Functor) アプリケイティブ(Applicative) モナド(Monad) モジュール (module) 高階関

  • Haskellを業務で使う、カジュアルに - Haskell-jp

    Link to hereはじめに この記事では、Haskellを業務でカジュアルに使う観点やヒントについて、簡単に紹介します。 Haskellを業務で使える局面は、以下のようにいくつか考えられます。 「プロダクト」の開発用言語として、Haskellを使う 「作業」の支援・加速用に、Haskellを使う 「思考」の支援・加速用に、Haskellを使う つまり、プロダクトの開発用言語としてHaskellを用いない業務形態においても、上記2や3のケースとして、Haskellを使用できます。すなわち、Haskellは幅広い局面でカジュアルに、つまり気軽に手軽に使用できます。 記事では、特に、上記の2と3について、いくつかの観点やヒントや例を紹介します。 なお、上記は、Haskellを用いる場合には限りません。Python, Perl, Ruby, Rust, Scala, OCaml, Cloj

    Haskellを業務で使う、カジュアルに - Haskell-jp
  • REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita

    はじめに 最近のウェブアプリではバックエンドをREST-APIとして用意し、 フロントエンドはREST-APIから引っ張ってきたデータをReactVueといったフレームワークで描画することが多いと思います。 このようなウェブアプリを開発する際に問題となるのはバックエンドとフロントエンドを並行して開発しにくいということです。バックエンドができなければフロントエンドはどんなデータが来るのかわからず描画できませんし、バックエンドもフロントエンドからどのようなリクエストが来るか決まらないと実装ができません。 そのため、最初にREST-APIの仕様を定めて、その仕様に沿ったモックサーバを作成し、 フロントエンドはバックエンドが完成するまでそれを用いて開発を進めるということが行われます。 さてそのREST-APIの仕様とはどのように記述されるのでしょうか? 1. 自然言語で記述する 一番よくある場合

    REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita
  • IO モナドと副作用 - Haskell-jp

    純粋関数型プログラミングで副作用を扱う方法Posted by Mizunashi Mana on April 05, 2020 Haskell は他のプログラミング言語には見られない特徴を多く持っている。その中の1つが純粋性だ。Haskell は純粋関数型プログラミング言語であることを、売りの1つにしている。しかし、純粋性は多くの場合表現力の縮小を招く。ところが Haskell は、IOモナドの導入により、通常のプログラミング言語と変わらぬ表現力を持てるようになっている。これは、とても驚くべきことだ。しかし、同時にこれは Haskell 入門者にとって、大きな混乱を招いているようだ。 今回は、そもそも純粋性とはなんなのか、なぜ他の言語は純粋性を担保できないのか、そして Haskell はどうやって IO モナドにより純粋性を担保しつつ他の言語と変わらない表現力を持てるようにしているのかにつ

    IO モナドと副作用 - Haskell-jp
  • State モナドの代わりに Reader モナドを使う

    注意 この記事は公開当時主張に誤りを含んでいたため,大幅に書き直しています.また,公開当時の主張の誤りについても,付録として載せておきました. Haskell で State モナドはモナドの代表格だ.Haskell 入門者は,多くの場合,状態を伴った計算を State モナドで書くことを習うだろう.しかし,実用上の多くの場面では,State モナドではなく他の選択肢を選んだ方がいい場合がある.一つの選択肢が,Reader モナドと可変参照を使う方法だ.今回は,この手法を使う利点と利用場面について考えていこうと思う. なお,環境として以下を想定している.

    State モナドの代わりに Reader モナドを使う
  • Haskell For a New Decade

    Haskell Problems For a New Decade It has been a decade since I started writing Haskell, and I look back on all the projects that I cut my teeth on back in the early part of this decade and realise how far the language and tooling have come. Back then Haskell was really barely usable outside of the few people who would “go dark” for months to learn it or those lucky enough to study under researcher

  • gloss で Turtle Graphics - Qiita

    Turtle Graphics on Gloss Ver.1.0.0.0 Gloss を使った Turtle Graphics です。 実際のコードは こちらの github にあります。 Gloss については こちら の記事が参考になる と思います。 含まれるファイル app / Main.hs -- 実験用 sample ├ circleDance.hs -- 複数の円を同時に描く ├ dragonCurve.hs -- dragon 曲線を描く ├ kochCurve.hs -- Koch 曲線を描く ├ graph.hs -- 関数のグラフを描く └ star.hs -- 星を描く sample / L-system ├ dragonCurveL.hs -- L-system で dragon 曲線を描く └ kochCurveL.hs -- L-systemKoch 曲線

    gloss で Turtle Graphics - Qiita
  • 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 発表スライド ここに