タグ

Haskellに関するNyohoのブックマーク (241)

  • Haskell の Array


    Haskell | Advent Calendar 2023 - Qiita 3 Haskell  Array () Haskell  Array Ix便 便 Array  Haskell  Array  Array !! O(n)  Haskell  O(1)  Vector (vector: Efficient Arra
    Haskell の Array
  • Haskellでグラフアルゴリズムを攻略する(WIP)


     HaskellListTreeListTreematch使   import Data.List import Data.IntMap.Strict (IntMap) import qualified Data.IntMap.Strict as IM type Gr a b = IntMap (a, IntMapb) type Node = Int type LNode a = (Node, a) type Edge = (Node
    Haskellでグラフアルゴリズムを攻略する(WIP)
  • はじめに - Qiita


    使 使 使
    はじめに - Qiita
    Nyoho
    Nyoho 2023/02/06
    プログラミングのメンタルモデル
  • 「競プロ典型 90問」Smallest Subsequence (最小部分列問題)


      90 006 - Smallest Subsequence5 ()    nex  Haskell   () i
    「競プロ典型 90問」Smallest Subsequence (最小部分列問題)
  • Haskell で、優先度付きキューを使ったダイクストラ法

    Haskellのカレンダー | Advent Calendar 2022 - Qiita に参加させていただきます! 突然ですが Haskell でダイクストラ法を実装します。 ダイクストラ法は重み付きグラフで最短経路問題を解くアルゴリズムのひとつです。ダイクストラ法 - Wikipedia に詳しい解説があります。 ダイクストラ法は、重み付きグラフにおいて、その重みに負の値がない・・・つまり重みが正であることを前提にしています。この構造上の仮定によって、貪欲的手法を取ることができるのがその特徴で、結果ベルマン・フォード法などの汎用的なアルゴリズムよりも計算量的に有利になります。 ダイクストラ法では、始点から各頂点への到達コストを最初に \infty と置いて、そこから緩和操作によって徐々にそれらを最適コストまで収束させていくわけですが、このとき グラフの頂点集合からその時点で最小のコスト

    Haskell で、優先度付きキューを使ったダイクストラ法
  • 超関数型プログラミング

    この記事はFOLIO Advent Calendar 2022の23日目です。 ソフトウェア2.0 ソフトウェア2.0 という新しいプログラミングのパラダイムがあります。これは Tesla 社のAIのシニアディレクターだった Andrej Karpathy が自身のブログ記事("Software 2.0")で提唱した概念で、 ニューラルネットワーク のような最適化を伴うプログラムを例に説明されています。 従来のプログラム(Software 1.0)は人間が命令に基づいたプログラムを作成し、望ましい挙動を行わせます。それに対してニューラルネットワークのようなプログラム(Software 2.0)では人間はある程度の自由度をパラメータという形で残したプログラムを作成し、「入出力のペア」や「囲碁に勝つ」というような教師データや目的を与えてプログラムを探索させるというものです。 画像出典: "So

    超関数型プログラミング
  • Haskellの環境構築2023


    Haskell Advent Calendar 20221 202212Haskell2023   Unix macOS (Intel / Apple Silicon) Linux (x86_64 / aarch64) WSL2WSL1 Windows (x64) ArmCPU使LLVMLLVM使64ArmApple Silicon MacRaspberry Pi OS64GHC 9.0
    Haskellの環境構築2023
  • Memoization via Representables

    18 September 2022 What is the most basic container type a language can have? Some people may answer vectors, others would go with hash tables, but in this post I am arguing in favor of functions. Yes, functions. Even though they aren’t generally seem as a data structure per se, we will see that most containers are in fact a way to represent a function with a given storage layout. To illustrate thi

    Memoization via Representables
    Nyoho
    Nyoho 2022/09/23
    メモ化を表現可能関手で
  • GitHub - IHaskell/learn-you-a-haskell-notebook: Jupyter adaptation of Learn You a Haskell for Great Good!

    Read the book right now on mybinder.org with this link: (Usually takes a minute to launch) This is a Jupyter notebook adaptation of the book Learn You a Haskell for Great Good! by Miran Lipovača. I learned Haskell from this book in 2014 by following along in GHCI, as the book suggested. In 2019, the Jupyter notebook format would be a nice way read this book. This is one of the best cases for Theod

    GitHub - IHaskell/learn-you-a-haskell-notebook: Jupyter adaptation of Learn You a Haskell for Great Good!
    Nyoho
    Nyoho 2022/06/09
    『すごいHaskell』 Learn You a Haskell for Great Good! のノートブック Jupyter notebook
  • Learn You a Haskell for Great Good! | A community version

    Hey yo! This is an up-to-date open-source fork of the original Learn You a Haskell (LYAH for short) by Miran Lipovača, "the funkiest way to learn Haskell, the best functional programming language around". This guide is meant for people who have programmed already, but have yet to try functional programming. Now, why did I create this fork? ("fork" means a copy of an original which may be modified

  • 「アルゴ式」をHaskellで学ぶための準備

    この記事は、CAMPHOR- Advent Calendar 2021 の7日目の記事です。 「アルゴ式」というプログラミングを学んで実践できる非常に良質なWebサービスがあります。 アルゴリズムについて解説された教科書だけでなく、実際にプログラミングを書いて提出してオンラインでジャッジしてくれるシステムを備えた練習問題も用意されているのが特徴です。さらにこのオンラインジャッジシステムは多くのプログラミング言語に対応しており、その中にはHaskellも含まれています。 今回はこのアルゴ式を読むにあたって練習問題をHaskellで解くために必要になりそうな知識についてまとめました。アルゴ式は現在ベータ版なので将来的な変更で変わってしまうものもあるかもしれませんが、2021年12月現在の練習問題を全てHaskellで解いた上で必要になったものをまとめているので参考にしていただけると幸いです。

    「アルゴ式」をHaskellで学ぶための準備
  • 3. フォーカス・リサーチ(2)HaskellによるQUICの実装 | Internet Infrastructure Review(IIR)Vol.52 | IIJの技術 | インターネットイニシアティブ(IIJ)

    3. フォーカス・リサーチ(2) HaskellによるQUICの実装 IIJの目標の1つはインターネットの発展に貢献することであり、技術研究所は貢献方法の1つとして新しいプロトコルの標準化に参加しています。新しいプロトコルの仕様を議論し、その仕様を実装し、他の実装と相互接続性を検証することで、仕様の完成度を高めることに長年取り組んでいます。 2013年以降はHTTP/2とTLS 1.3の標準化に参加しました。最近の2年半は、この2つのプロトコルに関連が深いQUICやHTTP/3の標準化に関わりました。この記事では、QUICやHTTP/3をどのように実装したかについて説明します。 3.1 QUICとHTTP/3 QUICは、UDPを利用する新しいトランスポートプロトコルです。以下の機能を取り込む大きな仕様として定義されています。 TCPが提供する信頼性、フロー制御、及び輻輳制御 HTTP/2

    3. フォーカス・リサーチ(2)HaskellによるQUICの実装 | Internet Infrastructure Review(IIR)Vol.52 | IIJの技術 | インターネットイニシアティブ(IIJ)
  • 閉半環を使ってグラフ上の最短距離を計算する!

    この記事は Haskell Advent Calendar 2020 21日目の記事です。 以前の記事でトロピカル行列を使ったグラフの最短経路の求め方を解説しました。 ここではトロピカルな隣接行列の累乗を収束するまで繰り返すという方法で最短経路を計算しましたが、実は閉半環という代数を考えると直接的に最短経路を求める計算が可能になります。そこで今回はその方法について解説したいと思います。 以前はHaskellのリスト [a] をベクトルとして行列を実装しましたが、今回はそれだと実装が少し煩雑になるので型レベル自然数を型引数に持つ Vector n a を中心に実装していきたいと思います。この話は以下の Functional Pearl が元になっていますが、この論文もリストを使って実装されているので Vector n a を使ってどのように実装できるかはこの記事で新しく試したところです。 ト

    閉半環を使ってグラフ上の最短距離を計算する!
  • とほほのHaskell入門 - とほほのWWW入門


      Haskell Curry  LISP, ML            Haskell 1.0 (1990)Haskell 98 (1999)Haskell 2010 (2009)   
  • 関数と型で理解する自動微分

    Slackワークフローで感謝を伝える機能/WiFi 自動接続/Figma to React Component/障害レポート君 Team3@NOT A HOTEL

    関数と型で理解する自動微分
    Nyoho
    Nyoho 2019/11/14
    「多値・多変数になると計算効率に差が出る」
  • Haskellの型と直観論理 - 朝日ネット 技術者ブログ


    xgotoHaskell (Type)Haskell  ---- Haskell Graham Hutton  /     ----  Haskell Richard Bird  /    Bool  True  False 2Int
    Haskellの型と直観論理 - 朝日ネット 技術者ブログ
  • "Fast and Accurate Least-Mean-Squares Solvers" in Haskell https://arxiv.org/abs/1906.04705

    Main.hs �D�U ��{�U {-# LANGUAGE DataKinds #-} {-# LANGUAGE NoStarIsType #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fplugin GHC.TypeLits.KnownNat.Solver #-} {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-} module Main where import Prelude hiding ((<>)) import

    "Fast and Accurate Least-Mean-Squares Solvers" in Haskell https://arxiv.org/abs/1906.04705
    Nyoho
    Nyoho 2019/10/01
    “カラテオドリの定理で最小二乗法を爆速にすると噂の "Fast and Accurate Least-Mean-Squares Solvers" をHaskellで実装してみた〜” https://twitter.com/lotz84_/status/1178704817436233729
  • Elixir版?①「プログラミングHaskell第2版」 - Qiita

    fukuoka.ex/kokura.exのpiacereです ご覧いただいて、ありがとうございます 先日9/7(土)に開催した、「ElixirConf JP 2019」の準備・運営にかかりきりで、約3ヶ月弱ぶりの投稿です(ElixirConf JP 2019のレビューは追ってまとめます) さて最近、Haskellerの方々と、ご一緒することが、ちょくちょくあります ご存知の方は、ご存知ですが、元々、私の関数型初体験は、Haskellでした … それから幾つものプログラミング言語を経由して、現在、Elixirに落ち着いており、恐らく、Elixir以外の言語を選ぶことは、よほどのことが無い限り、無いと思います とはいえ、言語ヲタとして、他言語に学ぶことは多くあり、今回は、先月出たばかりの「プログラミングHaskell 第2版」の第1章を、Elixirで解釈してみようと思います(コラムは、原著の

    Elixir版?①「プログラミングHaskell第2版」 - Qiita
    Nyoho
    Nyoho 2019/09/29
    面白い視点の記事
  • 計算量O(n)の画期的なソートアルゴリズムであるスターリンソートをHaskell で実装してみた #Haskell - Qiita


     Haskeller O(N)   (@4116You) July 28, 2019 TL O(n) O(n)O(1)O(log(n))O(nlog(n))O(n^2)O(n) O(n) Haskell
    計算量O(n)の画期的なソートアルゴリズムであるスターリンソートをHaskell で実装してみた #Haskell - Qiita
  • 動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita

    トロピカル半環と呼ばれる代数構造上のトロピカル行列を利用すると動的計画法を使ってグラフの最短経路の距離を計算するという問題が単純な行列積で解けてしまうらしい。そんな噂12を聞きつけて我々はその謎を解き明かすべく南国(トロピカル)の奥地へと向かった。 トロピカルな世界に行くためにはまずは代数を知る必要がある。要するに群・環・体の話だ。しかしこの記事の目的は代数学入門ではないので詳しい話は他の記事3に譲るとし、さっそく半環という概念を導入する。それは 半環は以下の性質を満たす二つの二項演算、即ち加法(和)"$+$" と乗法(積)"$\cdot$" とを備えた集合$R$を言う $(R, +)$ は単位元 $0$ を持つ可換モノイドを成す: $(a + b) + c = a + (b + c)$ $0 + a = a + 0 = a$ $a + b = b + a$ $(R, \cdot)$ は単

    動的計画法を実現する代数〜トロピカル演算でグラフの最短経路を計算する〜 - Qiita
    Nyoho
    Nyoho 2019/07/12
    トロピカルのでグラフ最短経路できるの知らだったー