タグ

haskellに関するkiyo_hikoのブックマーク (107)

  • ほーむ - 参照透明な海を守る会

    残念ながら開催が見送られたコミックマーケット98で頒布予定だった最終号を委託販売開始したでゲソ! 簡約: λカ娘 12 - とらのあな様通販 また以下の既刊も委託販売しているじゃなイカ。 簡約!? λカ娘 11 - とらのあな様通販 簡約!? λカ娘 10 - とらのあな様通販 さらに以下の既刊は2020年09月14日(月)までの予約再販受付中でゲソ。 始まりの総集編(1〜6巻収録) - とらのあな様通販 簡約!? λカ娘 9 - とらのあな様通販 簡約!? λカ娘 8 - とらのあな様通販 簡約 λカ娘 巻の七 - とらのあな様通販 簡約!? λカ娘 Rock! - とらのあな様通販 簡約!? λカ娘 Go! - とらのあな様通販 簡約! λカ娘(4) - とらのあな様通販 簡約!? λカ娘(算) - とらのあな様通販 皆様に支えられて活動してきたサークルは最終号をもって一旦幕を閉

    kiyo_hiko
    kiyo_hiko 2022/10/23
    消えた…?
  • Why is Perl so afraid of "deep recursion"?

    kiyo_hiko
    kiyo_hiko 2021/01/19
    Perlも恐らく限界はスタック依存。大雑把には:再帰が100を超えると警告が出るとか。でHaskellだと概ね遅延評価だのガードだのTCOに守られているが、Perlはその辺無いよとか。PerlでTCOやらないのはcallerをぶっ壊すからとか
  • とほほのHaskell入門 - とほほのWWW入門

    「ハスケル」と呼びます。 数学者・論理学者の Haskell Curry の名前に由来しています。 LISP, ML などの言語の影響を受けています。 関数型プログラミング言語 であり、特に 純粋関数型言語 に分類されます。 金融、セキュリティ数学・科学解析、構文解析などの分野での利用例があります。 関数型プログラミングに慣れていない人にとっては、多少学習コストが高いようです。 遅延評価 を採用しており、式は記述されていても必要となるまで評価されません。 関数型言語ですが、モナド などを利用することにより、手続き型言語のような記述も可能です。 Haskell 1.0 (1990年)、Haskell 98 (1999年)、Haskell 2010 (2009年) などのバージョンがあります。 コンパイル型言語ですが、スクリプト言語の様にインタプリタで呼び出すこともできます。 処理系は、イン

    kiyo_hiko
    kiyo_hiko 2021/01/02
    ええ…初心者向けのHTML解説サイトって勝手な印象あったが案外ガチだった
  • GHC 8.6.5

    kiyo_hiko
    kiyo_hiko 2019/06/01
    > choco install ghc
  • 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
  • 定理証明支援の紹介 - Qiita

    目的 定理証明支援とは何かと現状の整理。 定理証明支援とは 定理証明支援とは数学の定理を自動で証明することではなく、ステップバイステップでコンピュータに命令を送り、数学の定理を証明するのを助けるシステムである。 支援だから意味ないということでなく、最近の数学の証明は長くなり証明の検証が難しいのを助ける意味がある。定理証明支援の意義についてはこちらが詳しい。 また、信頼性が求めらる難しいアルゴリズムの検証、たとえばTLS(暗号通信)やRaft(分散合意アルゴリズム)のサーバーに利用されつつある。 ここでいう定理は大げさなものだけでなく、$1+1=2$、$0*何か=0$、$a*b=b*a$といった簡単なものを証明しながらどんどん積み上げていく。通常のプログラムと違うのは証明であるので使用する変数が整数ならそのすべての値について成り立つ定理を証明する。 定理を証明するのに使うツールは下記である。

    定理証明支援の紹介 - Qiita
  • LogicT

    LogicT Backtracking, Interleaving, and Terminating Monad Transformers を紹介します。 Abstract 任意のモナドでバックトラッキングを可能にするモナド変換子を設計、実装します。 このライブラリは次のような操作を提供します。 公平な選言: interleave 公平な連言: >>- 条件分岐: ifte 枝刈り: once これらは msplit という一つプリミティブで実装することができます。 次の2つの実装を紹介します。 成功と失敗の継続を使ったもの 限定継続を使ったもの 1. Introduction モナドを使ったプログラミングの利点は副作用や計算の観念を一般化して、非決定性やバックトラッキングのような評価モードをサポートします。 MonadPlus 型クラスには多くの実践的な応用があります。 非決定的な計算

    kiyo_hiko
    kiyo_hiko 2018/10/30
    "任意のモナドでバックトラッキングを可能にするモナドトランスフォーマー"
  • capm-network.com - このウェブサイトは販売用です! - capm network リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

  • The monad laws

    モナド則 三つの基則 「失敗」は付けたし 出口はない Zero と Plus 要約 このチュートリアルではいままで、技術的な議論を避けてきました。しかし、 モナドについて考えるべき技術的な要点が2、3あります。モナド演算は、 「モナド公理」として知られている、いくつかの法則群に従わなければ なりません。これらの法則は Haskell のコンパイラが強制するものでは ありません。したがって、すべての Monad のインスタンスと 宣言したものが、これらの法則に従うことを保証するのはプログラマ自身です。 Haskell の Monad クラスは、まだ見ていませんが、最小限の定義 以上にいくつかの関数を含んでいます。結局、多くのモナドは標準のモナド則 以外の規則にも従っています。Haskell のクラスにはこうした拡張されたモナド をサポートするためのものがあります。 三つの基則 モナドの概

    kiyo_hiko
    kiyo_hiko 2017/10/17
    "IOモナドから脱出することはできませんから…型構築子IO を含まないような関数の定義を書くことは不可能です… IOを含まないような結果を 返すあらゆる関数はIOモナドを使わないことが 保証されているということです"
  • 関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】

    前編では、Elm言語の基礎とFRPのエッセンスについてコードを通じて学びます。 後編では、実際にElmを使ってアプリケーションを作る方法と、その際に重要になるアーキテクチャを学びます。 なお、執筆時点でのElmのバージョンは0.15.1です。 注意! Elmはバージョン0.17で大きな変更がありました。現在は「関数型リアクティブプログラミング」のための言語ではありません。 参考:A Farewell to FRP(さらば FRP) また、言語自体のシンタックスやライブラリのAPIも以前とは大きく変わっています。これからElmを始める方は、必ず公式ドキュメントを参照してください。 公式ガイド FRPとは何か リアクティブプログラミングの直感的な説明としてよく挙げられるのが、Excelのような表計算ソフトです。 例えば、セルの間にC1 = A1 + B1という関係があるとします。 このように宣

    関数型リアクティブプログラミング言語Elmに学ぶ フロントエンド開発の新しい形 【前編】
    kiyo_hiko
    kiyo_hiko 2017/06/08
    なるほどFRP
  • 48時間でSchemeを書こう - Wikibooks

    Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch

  • Vim用のHaskellインデントプラグインvim-haskell-indentを作りました - プログラムモグモグ

    Haskellはインデントが意味を持つ言語です。コーディングするときには、エディターがいかに心地よく空気を読んでインデントを入れてくれるかが重要になってきます。HaskellのVim用インデントプラグインはこれまでいくつかありましたが、それらはどれも機能が少なすぎて、普段からHaskellを書く私にとっては苛々するものばかりでした。とても心地よいインデントをサポートしてくれるインデントプラグインはありませんでした。 とにかくHaskellの最強のインデントプラグインが欲しいということで、作りました。 VimでHaskellを書いているよという方は、ぜひインストールしてお使いください。 今のところ以下のような構文に対応しています。 データ型のインデント derivingの後はインデントをやめる guardのインデント otherwiseの後はインデントをやめる whereのインデント mod

    Vim用のHaskellインデントプラグインvim-haskell-indentを作りました - プログラムモグモグ
  • fuse でオレオレファイルシステムを作ってみた (Haskell で) | TECHSCORE BLOG | TECHSCORE BLOG

    TECHSCORE Advent Calendar 2015 の 8 日目の記事です。 fuse でオレオレファイルシステムを作ってみた Unix 系 OS では、fuse というモジュールを使って、オレオレファイルシステムを作成することができます。 今回は、fuse と locate コマンドで作ってみたファイルシステムをネタに、どんな感じで開発できるか紹介します。 この内容に興味のない方は、最後の世界で一番かわいいの画像を好きなだけ眺めていってください。 検索用ファイルシステム GUI のファイラーでは、検索をすると結果のファイルがずらずらと出てきて通常のディレクトリと同じような操作ができる、そういったものがよくあります。 しかし、locate などで検索しても、単にファイルパスが表示されるだけです。 そこで、(閲覧だけになりますが)似たようなことをするために、locate コマンド

  • 「参照透過である」とは、何から何への参照がどういう条件を満たすことを言うのか - Qiita

    関数型プログラミングが流行していることもあって、頻繁に耳にする「参照透過性」という用語について考えます。 ∥ 参照透過性 - Wikipedia その過程で目にした、Stack Overflow 上の Reddy 氏の発言が面白かったので、ザックリと訳します。 用語の起源と、それがプログラミング言語に導入された経緯 一応意味は分かってはいるんですが、なぜ「副作用のない関数呼び出し」やら「変数への再代入の禁止」といった特性を「参照透過性」と呼称するのかが分かりませんでした。この場合の「参照」は、何が何を参照することであり、また、それがどういう状態にあることを「透過である」としているのかが、通り一遍調べてみても分かりませんでしたので、掘りに行ってきます。 英語Wikipedia の方には、この考え方がプログラミングの概念として導入された経緯についての論文が参考文献として挙げられています。

    「参照透過である」とは、何から何への参照がどういう条件を満たすことを言うのか - Qiita
  • プログラミング言語探訪

    Walking Through Programming Languages Languages Standard ML Haskell Misc. About

  • Haskell の Monad とは言語内DSLのフレームワークである - あどけない話

    この記事は、Haskellを勉強してある程度分かったけど、Monadで挫折した人のための記事です。10分間で、Monadに対する納得感を得ることを目的としています。他の言語でいう「モナド」にも通用する内容ですが、Haskell の文法や用語を用いますので、他の言語の利用者に分かるかは不明です。 Haskellを勉強したのですから、 代数データ型 型クラス は分かっていることにします。Monad は、単なる型クラスの一つで、それ以上でもそれ以下でもありませんから、この二つが分かってないと話になりません。 また、言語内DSL(以下、DSLと略記)という考え方を知っていることも仮定します。Monad とは、DSLのフレームワークという直感を与えるのが、この記事の主眼ですからね。 さらに、構造化定理をいう単語を聞いてもビビらない人を想定しています。逐次、反復、分岐があれば、計算しうる計算はすべて記

    Haskell の Monad とは言語内DSLのフレームワークである - あどけない話
  • Stackを使って楽しくHaskellスクリプティング - Qiita

    今までいまいちモチベが上がらなかったHaskellでスクリプトを書くというのが、急に現実的になってしまったので、紹介します。 Haskellでスクリプティングする上での問題点 Haskellはもともと簡単なテキスト処理を書きやすいプログラミング言語ではあるのですが、標準で提供されているライブラリはあまり多くないので、必要に応じてコミュニティーパッケージを導入しなければその力を存分に発揮することができません。 通常のパッケージなら、cabalに依存関係を書けばパッケージマネージャで自動的に(コケることもありますが、理想的には)管理できるのですが、シェルスクリプトやPerl、あるいは最近ならPythonでやるような、コードを直接インタプリタで実行するような形のコードでは、そのような依存関係を自動で解決することは難しく、その上、仮にやろうとしたところで、いつまでもその依存パッケージが新しいコンパ

    Stackを使って楽しくHaskellスクリプティング - Qiita
  • Haskell/Understanding monads - Wikibooks, open books for an open world

    There is a certain mystique about monads, and even about the word "monad" itself. While one of our goals of this set of chapters is removing the shroud of mystery that is often wrapped around them, it is not difficult to understand how it comes about. Monads are very useful in Haskell, but the concept is often difficult to grasp at first. Since monads have so many applications, people often explai

  • 【開発】NTTデータでは、レガシーシステムのリバースエンジニアリングツールの開発において「Haskell」を利用しています。

    NTTデータでは、レガシーシステムのリバースエンジニアリングツールの開発においてHaskellを利用しています。レガシーシステムのリバースエンジニアリングを行うには多様なプログラミング言語の解析を行う必要があり、解析対象のプログラミング言語に合わせて、一部の機能を修正したり入れ替えたりすることが多いため、関数型プログラミングの利点を大きく享受できることが理由です。 ※下記リンクより、一部抜粋。続きはソースで http://www.nttdata.com/jp/ja/insights/trend_keyword/2013032101.html 続きを読む

  • 【翻訳】もし16種類のプログラミング言語が車だったら(その2) | 俺的備忘録 〜なんかいろいろ〜

    以前翻訳した記事とはまた別に、プログラミング言語を車で例えた記事が会ったのでそちらを翻訳してみた。 If programming languages were cars... - Perevodik.net Fortran 特に機動性に優れていたり魅力的で有るわけではないが、頑丈で信頼性が高い。 Lisp 誕生からこれまで、これだけの年月が過ぎたというのに、他のいかなる車も垂直に上がるドアを持たない。 C言語 誕生して40年たった今でも、最高のシステムプログラミング言語。 C++ C言語は、外で十分に騙される事がなかった。 Perl Larry Wall氏は、神によってこの言語を作成するように命じられた... 噂によると、Perlが持っている不可解な構文は復活後のイエスの生涯についての手がかりが含まれているらしい。 Visual Basic マイクロソフト・アプリ・トラックのまわりで果てし