タグ

haskellに関するpeketaminのブックマーク (53)

  • 遅延評価でデバッグが困難になる状況

    先日、Haskell 界隈で遅延評価によってデバッグがし辛いのはどんな時かと言う話があった。見た感じ、遅延評価によってデバッグのしにくさはそんなに変わらないと言う意見が結構あり、個人的には衝撃だった。僕自身は遅延評価にだいぶヘイトを溜めてる人なので、どういう状況でデフォルト遅延評価が嫌かを実感できる問題を作った。この問題を解けば、きっとヘイトを共有できるはずってわけ。一緒に地獄に落ちような。 なお、かなり主観に寄っていて、結構書き殴ってる部分が多いので、厳密な議論をするにはあまり良い例ではないかもしれない。個人的には、備忘録的な意味合いも強くて、今まで詰まったやつをまとめておくかみたいな感じでもある。 先に結論を書いておくと、 プログラム自体が大きくて [1] 複雑な制御構造をしていて (optional) 以下のいずれかの条件を満たす 遅延評価を機能として使っている デバッグ対象が効率に

    遅延評価でデバッグが困難になる状況
  • Haskellの型と直観論理 - 朝日ネット 技術者ブログ

    開発部のxgotoです。Haskellの初級・中級者向けのトピックを取り上げたいと思います。 今回は型(Type)についてです。型はHaskellの入門書でも必ず最初のほうに説明されるもので、手元のによれば、 型とは、互いに関連する値の集合である。 ---- 『プログラミングHaskell』 Graham Hutton 著 / 山和彦 訳 だとか、 値の世界は型と呼ばれる系統的な集まりへと分割される。 ---- 『関数プログラミング入門 Haskellで学ぶ原理と技法』 Richard Bird 著 / 山下伸夫 訳 などのように書かれています。たとえば Bool は True と False の2つの値からなる集合だし、Intは整数の集合というように、型は値の集合というふうにみることができます。それならば型などと呼ばずに集合と呼べばいいと思いますが、「異なるものには異なる名前をつけろ

    Haskellの型と直観論理 - 朝日ネット 技術者ブログ
  • time.gif · HookRace Blog

    This is an endless GIF that always shows the current time in UTC: Source Code (From reports it doesn’t seem to work on Safari, other browsers should be fine.) time.gif is written in Haskell and works by dynamically generating each frame of the GIF and slowly feeding them over the HTTP connection. There is no guarantee that this GIF shows a reasonable time and this is just for fun anyway, so better

  • 就職しました - モナドとわたしとコモナド

    日、Tsuru Capitalのポジションを得ました。 Tsuru Capitalはデリバティブの取引を行っている企業で、自動株取引の会社ではありません。取引に関わっている10人のメンバーのうち、創始者であるSimonを除く全員がHaskellerで、取引状況の分析や一部の取引の自動化など、あらゆるところにHaskellを使っているのが大きな特徴です。日では数少ない、Haskellをメインに使っている企業の一つでもあります。 東京、シンガポール、バンクーバーにオフィスがあり、東京には私を含む5人の開発者と事務担当、Simonと愛犬テトがいます。 オフィスはオランダヒルズ森タワーRoPにあります。設備が非常に充実しており、東京に引っ越すまではオフィスに週数度の頻度で泊まっていました。風呂上がりにジンジャエールをラッパ飲みしながらサーバールームの熱風で体を乾かすと、すごく気持ちが良いです。

    就職しました - モナドとわたしとコモナド
  • Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary

    ここ数週間ずっとswiftを書いてきたのですが、swiftは 書いていてつまらない 言語仕様がちょっと頭おかしい オフィシャル言語なのにIDEが糞 未来が見えない と、ぶっちゃけ飽きてしまったので、HaskellでiOSアプリを書くという茨の道に行ってみたいと思いました。 HaskellでiOSアプリがかければ共通部分の処理はHaskellのままAndroidで動かすとか色々できそうです。ぶっちゃけHaskellからCに落としちゃえばどこでも動かせるはずです。というわけで色々探していたところ HaskellがiOSをサポート、性能を改善 というわけで、動くのは動くらしい。少し触ってみて感じを掴んでみることにしました。まずは環境をつくって"Hello, world."です。 今回の参考資料 今回は基的にこれに従って進めていきます。 ghc-ios/ghc-ios-scripts · Git

    Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary
  • Haskellers

    Haskell The meeting place for professional Haskell programmers Overview Groups Find a Haskeller Find a Job Polls Bling FAQ News Archive Browse Skills Login I'm a Haskeller! Homepage Facebook login reinstated Feb 8, 2018 Total accounts: 2624 public, 1447 private Ilya Portnov Joakim Ahnfelt-Rønne Andrew Cowie Andre Moelle Simon Michael Damian Remco Niemeijer Merlin Göttlinger Daniel Patterson Nikola

  • Haskell 的視点から見た Elm - Qiita

    前書き Egison のドキュメントをいろいろ眺めていたところ The 6 Programming Languages Interesting to Try を読んで Elm という言語を知り、これは面白いと思い Egison そっちのけで Elm をダウンロードしていろいろ遊んでみました。そのうちにいろいろと思うところがあったので Elm Advent Calendar に乗じて徒然なるままに書いてみることにしました。 もし Elm のことは全然知らないというならば、まずは Examples で遊んでみてください。Web 上で Elm を実行して遊べます。 純粋関数型の世界から JavaScript の世界へ Elm は Haskell に非常に良く似た文法を持っています。Haskell と同様、副作用を暗黙に生じさせない「純粋関数型」のアプローチを取っていて、コンパイラは厳密な静的型付

    Haskell 的視点から見た Elm - Qiita
  • Haskell · How I Start.

    My name is Chris. I teach Haskell to people that are new to programming and as well as long-time coders. Haskell is a general purpose programming language that is most useful to mere mortals. I’m going to show you how to write a package in Haskell and interact with the code inside of it. Installing tools for writing Haskell code We’re going to use Stack to manage our project dependencies, compiler

  • HaskellでOSを作る試み - みずぴー日記

    函数型なんたらの集い 2014 in Tokyo - connpassで、前にやっていたajhcでmini-osを書いていたときの話をしてきた。 下書き せっかく書いたので発表のときの下書きをそのまま載せておく。 スライドを作るときに一部変えたり、下書きの段階では図をいれてなかったりするが、おおまかな流れは変わっていない(はず)。 自己紹介 みなさんこんにちは。地方枠で参加したmzpです。 普段は名古屋でRailsプログラマやってます。 導入 突然ですが、OSを作ってみたいですよね! プログラマたるもの1度はOSとかエディタは自作してみたくなりますよね!!そして、自作するなら当然、愛してやまない関数型言語を使いたいですよね。 そうです、この発表は関数型言語を使って自作のOSを作ろうとした話です。 整理 さて、ひとことでOSといっても様々な種類があるので、それを整理しておきましょう。 デスク

    HaskellでOSを作る試み - みずぴー日記
    peketamin
    peketamin 2014/11/05
    コメ欄に就職相談が
  • Hちょびよみ勉強ノート(4 〜 7回目) - 新しいフォルダ (3)

    ブログ書くのむっちゃサボってる…。 多相の種類 polymorphism ┬ universal(静的) ┬ parametric(ジェネリクス) │ └ inclusion(サブタイプ) ┬ nominal(継承) │ └ structural(ダックタイピング) └ ad-hoc(実行時) ┬ overloading(オーバーロード) └ coercion(暗黙の型変換)OCamlにはoverloading多相は無いらしいので完全な型推論が出来るらしい。 型推論の完全性 def f(x, y) = x + y ↑ ↓ def f(x: Int, y: Int): Int = x + yが相互に完全に求まること カリー化 他引数関数を1引数関数のチェーンにすること (a, b, c) -> d ↓ a -> (b -> (c -> d))カリー化すると何が嬉しい? 関数が取り回しやすくな

    Hちょびよみ勉強ノート(4 〜 7回目) - 新しいフォルダ (3)
  • defining functions on Haskell

    3. 関数を定義する この文章では Haskell で関数を定義する方法について述べます。 1. = は関数定義 Haskell には代入が無いので、= を関数定義に使います。 foo x y = x + y hoge = 2 foo は2つの引数を取って、それらの和を返す関数です。一方、 hoge は引数を取らず、常に 2 を返す定数関数です。 これらをファイル(例えば a.hs)に書いたのちロードすると次のようになります。 Prelude> :l a.hs Main> foo 1 2 3 Main> hoge 2 ちなみにプロンプトには hugs が最後に読み込んだモジュール名が表示されます。 hugs が立ち上がるとき Prelude というモジュールが読み込まれるので表示が Prelude になっています。一方、a.hs を読み込むと Main になるのは、 モジュール名を省略する

  • カリー化談義 - あどけない話

    最近、スタートHaskellで「カリー化された関数のメリットは何か?」という質問が出た。そのすぐ後に、kmizuさんがカリー化の誤用に対して警鐘を鳴らしてしていた。僕からするとkmizuさんの「カリー化の定義」も誤用に思えたので、調べるとともに考えたことのまとめ。 いろんな定義 「カリー化する」という用語は、すくなくとも以下の3つの意味で使われているようだ。 部分適用という意味 これは明らかに間違い 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと これはkmizuさんの定義。世間でもよく使われる。 「構造体を一つ取る関数」を「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと これは僕の定義。というか、Haskellコミュニティの定義。 「部分適用」の意味で使うのは明らかに間違いのなで排除。定義2と3について議論する。あとで、部分適用とは何かに

    カリー化談義 - あどけない話
  • Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD

    この記事を書き上げるには、相当長い時間がかかりました。来は今年の年明け、 Rubyの死 やデイヴィッド・ハイネマイヤー・ハンソンの TDDは死んだ がアップされて騒ぎになる前に投稿するつもりだったのです。昨年末に書いたツイートを見てください。 > Rubyにはもう飽き飽きした。理由はいろいろあるが、特にその副作用と、ステータスが可変なせいで大量のユニットテストを書かされるのにはウンザリだ。 @abevoelker Rubyの開発に関しては、大勢の人が心のどこかで何かおかしい、何かが欠けていると思っているようですが、たいていの人は責める対象を間違っています。Rubyで書いたアプリがとんでもない代物になったって? それはあなたがきちんとテストコードを書かなかったか、テスト駆動開発(TDD)の指針に則って開発しなかったからです。もしくは、正しいデザインパターンに切り分けるための知識が不足してい

    Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD
    peketamin
    peketamin 2014/08/29
    翻訳ナイスです!rubyはある意味アガリだと。
  • λ Lessons

    λ Lessons Pattern matching, first-class functions, and abstracting over recursion in Haskell This is a short, interactive lesson that teaches core functional programming concepts. It was designed to transform the way you think about performing operations on lists of things, by showing you how functions are executed. You can explore the way map and fold (foldr and foldl) are defined and computed. F

  • Pandoc - index

    If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert between the following formats: (← = conversion from; → = conversion to; ↔︎ = conversion from and to) Lightweight markup formats ↔︎ Markdown (including CommonMark and GitHub-flavored Markdown) ↔︎ reStructuredText → AsciiDoc ↔︎ Emacs Org-Mode ↔︎ Emacs Muse ↔︎ Textile → Markua ← txt2t

  • Model-view-controller, Haskell-style

    I'm releasing the mvc library for model-view-controller (MVC) programming in Haskell. I initially designed this library with games and user interfaces in mind, but the larger goal of this library is to provide a mathematically inspired framework for general-purpose component sharing in Haskell. This library differs in a significant way from other MVC libraries: this API statically enforces in the

    Model-view-controller, Haskell-style
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • FINDJOB!終了のお知らせ | FINDJOB!

    FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ

    FINDJOB!終了のお知らせ | FINDJOB!
  • Python のリスト内包表記 - Ruby や Haskell の書き方と比べながら

    0. Python の気になる機能  Python チュートリアル の目次をざっと眺め、目にとまったのは次の二つの機能。 5.1.4 リストの内包表記 9.9 ジェネレータ (generator) 両方とも耳馴れない言葉。 (@_@) まずは、リストの内包表記から調べることに。 1. リスト内包表記の基 a. リストの各要素に関数を適用する 最初は、リスト内包表記の使い方を確認する。例として、「数値のリストの各要素を 2 倍する」 print [x*2 for x in [1,2,3,4,5]] 初めて見たとき、どこから読めばいいのか検討がつかなかった。 読む順番は、 for によって、各要素を取り出し、 各々に対して、操作を加える。 というように、後ろから前へと読み進める。 b. リストの各要素から、条件にあったものを抽出する 次に、同じく数値のリストから、特定の条件に合う要素を抽出す

    Python のリスト内包表記 - Ruby や Haskell の書き方と比べながら
  • 数学プログラムを Haskell で書くべき 6 の理由

    筑波大学計算機数学グループ春の館山合宿での講演「数学プログラムを
Haskell で書くべき6の理由」の発表資料。実際の講演映像は https://www.youtube.com/watch?v=S4_7KVNA-Ww Read less

    数学プログラムを Haskell で書くべき 6 の理由