Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (18)

タグの絞り込みを解除

haskellに関するzyzyのブックマーク (34)

  • 仕事で使うHaskell

    TL;DR Haskellはいいぞ。ただ仕事で使うならビルド、デプロイ周辺は工夫する必要が色々出てくるぞ。 あ、nixもいいぞ。 はじめに Haskellを用いている会社HERPに転職してからそろそろ1年が経つので久しぶりに記事でも書いてみます。そういえばzennでは初投稿ですね。 最近はHERPでHaskellを書きつつシステム基盤整備みたいなことをやっています。あとマネージメントみたいなこともやってたりします。 僕の書いたHaskell microserviceは既に稼働して売り上げに貢献しています。 あ、HERPはHaskell FoundationのFunctorスポンサーになっています。スポンサーの名前が面白いですよね。 Haskellを仕事で使う感想 最高ですね。簡単便利十分速い保守楽拡張楽、という感じです。 並行プログラミングツールとしてstmが提供されているのがお気に入りで

    仕事で使うHaskell
    zyzy
    zyzy2024/12/21非公開
    Nixをビルド重めの言語で使うのいいんじゃないか説。ドライブは占有しがちだが、こっちは今むしろどんどん大容量化してってるしな。
    • Haskeller の異常な愛情:または、生粋の Haskeller は転職して Rust を一ヶ月半書いて何を思うようになったか

      Haskeller の異常な愛情:または、生粋の Haskeller は転職してRust を一ヶ月半書いて何を思うようになったか この記事は Jij Advent Calendar 2024、Haskell Advent Calendar 2024、およびRust Advent Calendar 2024シリーズ2 の18日目の記事です。 TL; DR:Haskell にもRustにもよいところがあるので、お互いいいとこ取りをしていきたいですね! はじめに:転職しました このたび諸般の事情[1]により転職しまして、2024年11月から株式会社JijというところでRustを書いております。 筆者はかれこれ17年くらいはHaskellを書きつづけており、前職でもほぼ全てのものをHaskellで書いていたくらいには生粋のHaskellerです。今回もできればHaskellを書く仕事をできると

      Haskeller の異常な愛情:または、生粋の Haskeller は転職して Rust を一ヶ月半書いて何を思うようになったか
      zyzy
      zyzy2024/12/19非公開
      cabal今まともなんだ、っていうのとRust用Hoogleは確かにあったら便利そうではある。Monad欲しいのはずっと言ってるけどまぁ難しいんだろうな、と。
      • Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記

        追記:いくらなんでもあまりにも長いので、配列演算に焦点を絞ってより「Rustっぽさ」の気持ちを強調した姉妹編を書きました。手っ取り早く雰囲気を掴みたい方はこちらもどうぞ。 TL;DR GHC 9.0 から Haskell に入った線型型(Linear Types)の機能を一部割とガッツリ使ってみたので、Linear Haskell の現在の使い心地と将来の展望を報告するよ。 使おうと思えば使える段階にあるけれど、一部バグもあるし、まだ言語機能面で実装が追い付いていない部分もあって、快適に書けるようになるにはもうちょっと掛かるよ。それでも実用しようと思えばできるレベルにあるよ。RustのようになるにはLinear Constraintsに期待。 更新履歴2023/12/15 11:45 姉妹編へのリンク追加。2023/10/01 12:30 線型性を納得してくれない場合の \eta-展

        Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記
        zyzy
        zyzy2023/10/02非公開
        Haskell界隈がまた面白くなってきてる
        • NeoHaskell

          NeoHaskell is a dialect of Haskell that is focused on newcomer-friendliness and productivity.It is designed to be easy to learn and use, while also being powerful enough to release your app with minimum effort and maximum confidence.

          NeoHaskell
          zyzy
          zyzy2023/09/27非公開
          普通のHaskellとの差分どっかに載ってないかな……
          • Haskellで型レベルパーサー

            ghc-9.6.1です。 GHCはChar kindが9.2で入ったので型レベルパーサーが書ける様になってるんですよね。ということで書いてみました。 BNFは以下です: expr ::= term *('+' term) term ::= factor *('*' factor) factor ::= '(' expr ')' | nat nat ::= 0 | 1 | 2 | ... | 9 {-# Language TypeData #-} {-# Language DataKinds #-} {-# Language TypeFamilies #-} {-# Language UndecidableInstances #-} {-# Language TypeApplications #-} {-# Language MagicHash #-} {-# LANGUAGE NoStar

            Haskellで型レベルパーサー
            zyzy
            zyzy2023/04/12非公開
            魔境……
            • Haskellで動的計画法を攻略する

              Haskellで動的計画法を実装する2つの方法 出典: Easily Solving DynamicProgramming Problems in Haskell by Memoization of Hylomorphisms ザ圏論的やり方としては①Dynamorphism、手続き的な方法として②STモナドが挙げられる。 DynamorphismはHylomorphismをメモ化したようなもので、詳しくはlotz氏のサイトを参照してほしい。 Haskellerとしては、Dynamorphismはとても憧れる手法である。しかし、思ったよりも速度が出ない。。 このスクラップに二通りのLCSの解法を記載したが、いずれもTLEであった。 lotz氏によると、メモ化されたデータ構造にはO(n)でしかアクセスできないことが理由とのこと。 この記事では、STモナドによるメモ化再帰を用いた動的計画問題

              Haskellで動的計画法を攻略する
              zyzy
              zyzy2023/02/16非公開
              競プロに便利な奴だ
              • Rust vs. Haskell

                Rust and Haskell don’t shy away from powerful features. As a result, both languages have steep learning curves when compared with other languages. Trying to learnRust or Haskell can be frustrating, especially in the first couple of months. But if you already knowRust, you have a head start with Haskell; and vice versa. In this article, we want to show how knowledge of one of these languages can

                Rust vs. Haskell
                zyzy
                zyzy2023/02/15非公開
                高階型周りがもうちょっとガッツリ入ればなぁ(GATsで大分行ける感じには成った)というのと、演算子の定義をもうちょっと好きにさせてほしいのはずっと思ってるRust。ghcはエラーメッセージよくなったん?
                • JavaScript backend merged into GHC | IOG Engineering

                  A newJavaScript backend was merged into GHC on November 30th,2022! This means that the next release of GHC will be able toemit code that runs in web browsers without requiring any extra tools, enabling Haskell for both front-end and back-end web applications. In this post, we, the GHC DevX team at IOG, describe the challenges we faced bringing GHCJS to GHC, how we overcame those challenges, and

                  zyzy
                  zyzy2022/12/21非公開
                  元々のreactiveをやってたHaskellがフロントエンドに来た?
                  • 代数的データ型と初等代数学

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

                    代数的データ型と初等代数学
                    zyzy
                    zyzy2022/07/15非公開
                    基本部分の分かり易い説明
                    • プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー

                      原文(投稿日:2022/02/25)へのリンク Flixは多くのプログラミング言語にインスパイアされたオープンソースのプログラミング言語であり、開発者は関数型、命令型、論理型のスタイルでコードを書くことが可能である。FlixはScalaに似ており、Hindley-Milnerに基づく型システムとGoにインスパイアされた並行処理モデルを採用している。JVM言語はポリモーフィックエフェクトシステムやDatalog制約などのユニークな機能をサポートしている。 FlixのプログラムはJVMバイトコードにコンパイルされ、開発者はFlix Visual Studio Code拡張機能を使用するか、online playgroundを使用して言語を評価することができる。 コミュニティはいくつかの原則に基づいて言語を開発している。例えば、NULL値を使わない、デフォルトでprivate、リフレクションを使

                      プログラミング言語Flixに関するMagnus Madsen氏へのインタビュー
                      zyzy
                      zyzy2022/03/11非公開
                      面白そうだけどあとは公式のエコシステムがどれくらい充実するかかな? Haskellはその辺が厳しかったし、Scalaもsbtはちょっと扱いづらかったし。
                      • Haskell: Monadクラスのこれまでとこれから - Qiita

                        「return と pure って同じじゃないの?」「Monad クラスの fail って数学的なモナドにはなくない?」 Haskell初心者が引っかかるポイントの一つが、 Monad クラスと Applicative クラスの関係だろう。他にも、 Haskell 2010 の Monad クラスには数学的なモナドと照らし合わせると奇妙な点がいくつかある。 この記事では、近年行われている Monad クラスへの破壊的変更をまとめ、変化の途上にある Monad クラスの理解の一助としたい。 Haskell 2010 での Monad クラスとその問題点 Haskell 2010 LanguageReport では、 Monad クラスは次のように定義されている: しかし、 Haskell 2010 の Monad クラスの定義には、次のような問題点がある:数学的にはモナドというのは自己関

                        Haskell: Monadクラスのこれまでとこれから - Qiita
                        zyzy
                        zyzy2021/12/20非公開
                        haskellやってて気持ち悪い所が知らん間に直されてたらしい
                        • 「Haskellのモナド完全に理解した」試験問題

                          Haskellは勉強したけどモナドを当に理解したって言えるのか自信がない… \そんな人向けの試験問題を作りました!/ これから実施する試験問題を、10問中8問正解すればあなたはHaskellのモナドを完全に理解しています。私が保証します! それではさっそく〜〜 第一問 まずは緊張をほぐしましょう。 Haskellの Monad は○○○○である ○○○○に当てはまるのは以下の選択肢のうちどれでしょう? 型 関数 型クラス 型シノニム 答え

                          「Haskellのモナド完全に理解した」試験問題
                          zyzy
                          zyzy2021/12/19非公開
                          guardの話はモナドの理解というよりAlternativeというかMonadPlusの理解と言う気もする。
                          • Lensだけで作るニューラルネットワーク

                            これは、FOLIO Advent calendar 2021 の15日目の記事です。 圏論を機械学習に応用する話題の一つとしてLensで微分可能プログラミングを実装する話を紹介したいと思います。とはいえ圏論など気にせずLensを使ったニューラルネットワークを実装していきます。学習モデル、誤差関数、学習係数などの基的な構成要素が全てLens(ParaLens)として実装できる様子を楽しんでいただければと思っています。 Lensって何? Lensはいわゆる getter と setter を組み合わせたデータ構造です。すなわち型sのデータ型から型aの値を取り出すgetter s -> a と、型sのデータ型を型aの値で更新して新しい型sのデータ型を作成するsetter (s, a) -> s から成っています。

                            Lensだけで作るニューラルネットワーク
                            zyzy
                            zyzy2021/12/16非公開
                            すげー発想!! Lens自体が色々と出来る可能性秘めてるんだな
                            • 関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。

                              先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm,Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開

                              関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
                              zyzy
                              zyzy2021/08/18非公開
                              LensがそもそもHaskellでオブジェクト指向っぽい事するためのツール感あるけども、欠けてる所の補完でもあるし、まぁ。
                              • Re: 言語のはなし / jmuk - Message Passing

                                話をふられてなんなんだけど、最近あんまりML系の言語を使ってみたりしていないんだよな。最後になにかやったのは、min-camlがwasmを吐けるようにしたことで、あれはOCamlで書いたのだったか(min-camlはセルフホストではなく、OCamlで書かれている)。公開もしていない……自分で書いた部分がかなりmessyで気が滅入る感じになってしまったので放置している。 Haskellの型クラス そういえばポッドキャストで最近、Haskellの歴史の論文を読んだのを紹介した。2カラムで50ページ以上という長大なる論文なので仕方なくかなりの部分を割愛したが、なかでも型クラスの話はほとんど触れずに飛ばしたように思う。ところがあの論文は “being lazy with class” という副題がついてるくらい、なにかと型クラスの話をする論文なのだった。論文著者の気持ちとしては、型クラスこそがHa

                                Re: 言語のはなし / jmuk - Message Passing
                                zyzy
                                zyzy2021/07/11非公開
                                やっぱtypescriptが強いのはエコシステム周りのおかげなんだろうなぁ
                                • とほほのHaskell入門 - とほほのWWW入門

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

                                  zyzy
                                  zyzy2021/01/02非公開
                                  最近Haskell元気ないので、これで少しでも流行ったらいいな。
                                  • 経験5年のHaskellユーザがScalaを仕事で半年使ってみた

                                    haskell-scala-java ちょっと前までScalaを書いていたので、 Haskell好きな人がScalaを書いた感想を書きます。 タイトルは経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’sblogの模倣です。 あくまで1ユーザの感想です。Scalaに慣れてしまうと違和感を忘れてしまうと思ったので、当時箇条書きで雑にメモしていたものを参照して書いています。 逆にScala使いがHaskellを知るメモに役立つかもしれません。 Haskell歴 when: 2013年から知って学び始めましたが、格的に使い始めたのは2015年からで、5年ほど使っています where: どの言語を使っても良くて新しい言語を学ぶ必要がなければ基的にHaskellを使っています what:趣味OSSプロジェクトの大半 現在一番スターもらっ

                                    経験5年のHaskellユーザがScalaを仕事で半年使ってみた
                                    zyzy
                                    zyzy2020/11/18非公開
                                    文字列の取り回しは本当にいいよね、JVM系列。
                                    • 『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog

                                      この記事は以下のページに移転しました.blog.ryota-ka.me 一昨年のゴールデンウィークに池袋のジュンク堂を訪れた際,『形式意味論入門』という表題のに目が止まり,数学や論理学を用いて自然言語表現の意味を形式的に考察する学問分野があることを知った*1.また,その道具立てとして単純型付きラムダ計算が用いられていることが,なおのこと私の興味を惹いた.ラムダ計算といえば,読者の多くが計算機科学分野での応用を思い浮かべると思うが,Richard Montague*2 が自然言語分野に応用して以来,そちらの方面でも道具立てとして用いられているようである. 形式意味論入門 (開拓社叢書) 作者:拓郎, 田中開拓社Amazon このは,Irene Heim と Angelika Kratzer による Semantics in Generative Grammar (以下 Heim and

                                      『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
                                      zyzy
                                      zyzy2019/08/23非公開
                                      見慣れた記述形式で読めるのありがたい。
                                      • HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行 技術書典シリーズ、8月の新刊|株式会社インプレスR&D

                                        HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行技術書典シリーズ、8月の新刊

                                        HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行 技術書典シリーズ、8月の新刊|株式会社インプレスR&D
                                        zyzy
                                        zyzy2018/10/06非公開
                                        なんだかんだでやっぱYesodがスタンダードの座のままなのかな……? そろそろ手を出すべき?
                                        • 日持ちする直列化のためのライブラリ「winery」 - モナドとわたしとコモナド

                                          人類は、酒と共に発展してきたと言っても過言ではない。穀物や果実などを酒に変換することにより、糖を除く栄養を保ったまま、高い保存性を持たせることができる。酒は人々の喉を潤し、時に薬として使われた。 プログラミングにおいても、終了したら消えてしまうデータを、保存性の高いバイト列に変えたい場面がよくある。そのような操作を直列化(シリアライズ)と呼び、いくつかのアプローチが存在する。 コード生成タイプ Protocol Buffers、cap'n'protoなど データの構造を記述する言語(スキーマ)から、データ構造およびシリアライザ・デシリアライザをコードごと生成する。幅広い言語で使える一方、作れる構造が限られており、定義済みの構造にも使えないので、Haskellのような言語とは相性があまりよくない。 互換性を保つ機能が充実していることが多い。 汎用フォーマットタイプ CBOR、MessageP

                                          日持ちする直列化のためのライブラリ「winery」 - モナドとわたしとコモナド
                                          zyzy
                                          zyzy2018/08/06非公開
                                          試す機会があったら試してみようかな

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

                                          キーボードショートカット一覧

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp