並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 702件

新着順 人気順

haskellの検索結果321 - 360 件 / 702件

  • 技術書を自作PDFリーダーで読む - Haskellでつくる不思議な読書体験 (1):関数型玩具製作所

    技術書典で購入した本をちょっと不思議なPDFリーダーで読んでみませんか? Acrobat Readerや、Kindleとはひと味違った読書を可能とします。 【ビルド済みソフト(Windows)】 https://polymony.net/2020/12/19/post-3765/ 【動画など】 https://github.com/polymonyrks/poppyS/blob/master/READMEJP.md 自然言語にもシンタックスハイライト的な何か(着色)を試みるものです。 難しい文書、読む気すら起こらない文書を攻略できます(速読・精読)。 技術書典10に合わせてビルド済みソフトを用意できました。 ぜひ、ご自身で体験してみてください。 (本書を買わなくてもソフトは動かせます、本書には着色戦略が書かれています) 【扱う内容】 * 自然言語への着色による視認性向上の可能性 * 具体的

      技術書を自作PDFリーダーで読む - Haskellでつくる不思議な読書体験 (1):関数型玩具製作所
    • Icicle Lang - Traversals as Optimisations

      Using traversals and a simple fixpoint monad, we can efficiently crunch Icicle expressions to a minimal, efficient kernel. This speeds up downstream compilation, reduces generated code size, and makes our queries run faster. Icicle is a high level language. The source language has mode polymorphism for error handling and runtime staging, type inference, function abstractions, and syntactic sugar t

      • VSCodeのHaskell拡張を使って最速開発環境構築 - Qiita

        2020/7/28に新しいHaskell拡張がリリースされました。 https://marketplace.visualstudio.com/items?itemName=haskell.haskell さっそく、こいつを使って最速開発環境構築していくぜ!!! 前提条件 Dockerをインストール VSCodeをインストール Remote - Containers拡張のインストール コンテナ上でHaskell拡張を動作させる 任意のフォルダに.devcontainer.jsonファイルを作成して以下を記載 { "name": "HaskellDevContainer", // DockerhubのHaskell公式イメージ "image": "haskell:8.8", "extensions": [ // HaskellのVSCode拡張をインストール // https://market

          VSCodeのHaskell拡張を使って最速開発環境構築 - Qiita
        • Pug を HTML に移行して .vue ファイル の template タグ内に ESLint を効かせた話 - SMARTCAMP Engineer Blog

          こんにちは!スマートキャンプでインサイドセールスに特化した SaaSを作っているエンジニアの中川です。 上記プロダクトのフロントエンドは Vue.js を用いて開発しているのですが、 その中で SFC 内のtemplateタグで使用していた Pug をやめて HTML に移行した件をこの記事ではお話しようと思います。 また、実際にtemplateタグに ESLint を効かせてみて発覚したエラーや警告のなかで数が多かったものや、これから Vue 3 に移行していく上で対応する必要があったルールを紹介します。 背景 eslint-plugin-vue が効かない チームに Pug 推進派がいない Pug を HTML に移行するには Vue 3 に準拠した Lint ルールを導入する Lint を実行してみる 対応した目ぼしいルール vue-require-v-for-key vue/val

            Pug を HTML に移行して .vue ファイル の template タグ内に ESLint を効かせた話 - SMARTCAMP Engineer Blog
          • GitHub - digitallyinduced/ihp: 🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness

            IHP is a modern batteries-included haskell web framework, built on top of Haskell and Nix. We believe that functional programing is the future of software development and want to make functional programing with haskell and nix available to anyone. We try to offer a solution which can be used by developers who have not worked with haskell yet. IHP comes with everything you need to build great web a

              GitHub - digitallyinduced/ihp: 🔥 The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness
            • 関数型Pythonアンチパターン

              From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE

                関数型Pythonアンチパターン
              • Haskell/連想配列のマージとData.Map.Merge.Strict - Qiita

                HaskellのData.Mapモジュールにおいて定義されるMap型(連想配列)に関して, 2つのMapのマージを定義するData.Map.Merge.Strict.mergeの使い方が意外と大変だったので共有します. Data.Mapについて こちらの記事に基本的な事項がまとめてあります. Data.Mapの使用にはcontainersパッケージのインストールが必要です. こちらでも言及されている通り非正格なData.Mapは特別な理由がない限り非推奨とのことなので, 本記事でも正格版であるData.Map.Strictを用います. keyの型k, valueの型aの連想配列Map k aは配列[(k,a)]からfromList関数によって生成できます:

                  Haskell/連想配列のマージとData.Map.Merge.Strict - Qiita
                • LiquidHaskell Blog

                  LiquidHaskell is a GHC Plugin Posted by Ranjit Jhala Aug 20, 2020 I enjoy working with LH. However, I’d be the very first to confess that it has been incredibly tedious to get to work on existing code bases, for various reasons. LH ran one file at a time; it was a hassle to systematically analyze all the modules in a single package. LH had no notion of packages; it was impossible to import specifi

                  • http://blog.ezyang.com/2020/08/dynamic-scoping-is-an-effect-implicit-parameters-are-a-coeffect/

                    • Unifying Structured Recursion Schemes

                      Unifying Structured Recursion Schemes Ralf Hinze Nicolas Wu Jeremy Gibbons Department of Computer Science, University of Oxford, Wolfson Building, Parks Road, Oxford, OX1 3QD, England {ralf.hinze,nicolas.wu,jeremy.gibbons}@cs.ox.ac.uk Abstract Folds over inductive datatypes are well understood and widely used. In their plain form, they are quite restricted; but many dis- parate generalisations hav

                      • Copilot 3 - NASA Technical Reports Server (NTRS)

                        Copilot 3Ultra-critical systems require high-level assurance, which cannot always be guaranteed in compile time. The use of runtime verification (RV) enables monitoring these systems in runtime, to detect property violations early and limit their potential consequences. The introduction of monitors in ultra-critical systems poses a challenge, as failures and delays in the RV subsystem could affect

                        • Kowainik - Haskell mini-patterns handbook

                          Navigating in the ocean of Haskell possibilities is challenging even though Haskell is a powerful language that helps to implement robust and maintainable programs. The language supplies you with tons of awesome approaches, but it is not always trivial to see how and where to use them properly. Fortunately, like any other mainstream programming language, Haskell also has its best-practices and rec

                            Kowainik - Haskell mini-patterns handbook
                          • Types as axioms, or: playing god with static types

                            Just what exactly is a type? A common perspective is that types are restrictions. Static types restrict the set of values a variable may contain, capturing some subset of the space of “all possible values.” Under this worldview, a typechecker is sort of like an oracle, predicting which values will end up where when the program runs and making sure they satisfy the constraints the programmer wrote

                            • IDE: Measuring memory usage of Haskell values and patching GHC

                              Posted on August 4, 2020 by Michail Pardalos As part of my Google Summer of Code project to add instrumentation to ghcide, I needed to measure the size of Haskell values in memory. After getting blocked by a bug in a GHC primop I fell down a rabbit hole of learning about GHC’s memory layout, C– and making my first contribution to GHC. In this post I want to describe that journey and hopefully enco

                              • 圏論入門|日本評論社

                                第1章 圏・関手・自然変換 1.1 集合と写像から 1.2 圏・対象・射 1.3 圏のデータ構造 1.4 関手・反変関手 1.5 忠実関手と充満関手 1.6 自然変換 1.7 Haskの部分圏 第2章 自然変換と圏同値 2.1 関手圏 2.2 圏同値 第3章 普遍性と極限 3.1 始対象と終対象 3.2 積 3.3 余積 3.4 極限 3.5 余極限 3.6 極限の存在 3.7 余極限の存在 第4章 関手と極限の交換 4.1 関手は錐や余錐を写す 4.2 Hom関手と極限 4.3 Hom関手と余極限 4.4 実行可能な例 4.5 極限を関手とみる 第5章 随伴 5.1 随伴とは 5.2 単位と余単位 5.3 三角等式 5.4 普遍射と随伴 5.5 随伴の同値な言い替え 5.6 随伴と圏同値 5.7 随伴の大局的な自然性 5.8 随伴と極限 第6章 モナドとHaskellのMonad 6.1

                                  圏論入門|日本評論社
                                • Defunctionalization and Freyd’s Theorem

                                  Defunctionalization and Freyd’s Theorem Posted by Bartosz Milewski under Category Theory, Programming [9] Comments The main idea of functional programming is to treat functions like any other data types. In particular, we want to be able to pass functions as arguments to other functions, return them as values, and store them in data structures. But what kind of data type is a function? It’s a type

                                    Defunctionalization and Freyd’s Theorem
                                  • CodeGen: Semantic's improved language support system

                                    EngineeringOpen SourceCodeGen: Semantic’s improved language support systemThe Semantic Code team shipped a massive improvement to the language support system that powers code navigation. Code navigation features only scratch the surface of possibilities that start to open up when we combine Semantic‘s program analysis potential with GitHub’s scale. The Semantic Code team shipped a massive improvem

                                      CodeGen: Semantic's improved language support system
                                    • Golfing language extensions

                                      Those 73 characters require 21 language extensions to compile correctly! This blog post aims to quickly explain what that code does by showing how to require various language extensions with the least amount of code. Before we get started, a couple notes: The challenge was to require the most language extensions with the fewest characters. I would be happy to be proven wrong, but I think you can't

                                        Golfing language extensions
                                      • Reanimate

                                        Reanimate is: An animation library: Animations are written as code. Written in Haskell: High-level, purely functional, expressive. Based on SVG: Powerful and introspective. Cross-platform: Windows, MacOS, and Linux. Reanimate aims to be a batteries-included way of creating animations and illustrations. It builds on two core ideas: (1) graphics (both still and animated) should be expressed as code,

                                        • 計算モデルとプログラミング - Haskell勉強会

                                          ラムダ計算を分かりやすく説明した本がありました。 「計算モデルとプログラミング」という本です。 計算モデルとプログラミング 作者:猪股 俊光,山田 敬三 発売日: 2019/04/19 メディア: 単行本 本書を参考にして、ラムダ計算の説明方法を学んでみたいと思います。 目次 著者紹介 出版社情報 書評 目次 第1章 計算の世界と計算モデル 1.1 計算の世界 1.2 計算モデル 1.3 計算モデルとプログラミング言語 1.4 アルゴリズムの記法 1.5 数の体系 1.6 自然数上の計算と計算モデル 演習問題 第2章 抽象機械型計算モデル 2.1 機械による計算のモデル化 2.2 順序機械 2.3 有限オートマトン 2.4 チューリング機械 2.5 チューリング機械の計算可能性 2.6 まとめ 演習問題 第3章 命令型計算モデル 3.1 命令による計算のモデル化 3.2 レジスタ機械 3.

                                            計算モデルとプログラミング - Haskell勉強会
                                          • 不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita

                                            諸般の理由で『Pythonのlambda式を用いたラムダ計算の基礎表現』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータfixがとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした. このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎. 不動点コンビネータの定義 不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称であるfixを不動点コンビネータの関数名とする. Haske

                                              不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita
                                            • The golden rule of software quality

                                              This post summarizes a rule of thumb that I commonly cite in software quality discussions, so that I can link to my own post to save time. I have taken to calling this the “golden rule of software quality” because the rule is succinct and generalizable. The golden rule is: Prefer to push fixes upstream instead of working around problems downstream … and I’ll explain implications of this rule for a

                                              • 『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog

                                                この記事は以下のページに移転しました. blog.ryota-ka.me 前編はこちら ryota-ka.hatenablog.com §8 発話文脈・変項割当 という文を発話したとする.この文は,代名詞 と の2つの指示対象が発話の状況から明らかなときにのみ適切である.このように,文脈に依存して意味が初めて定まる言語表現を直示 (deixis) という.指示対象を明らかにするため,次のように代名詞に指標 (index) を振ることにする. と に と という異なる指標が割り当てられているのは,それらが相異なる外延をもつことを表している. 既に述べたように,この文の外延は および の指示対象が文脈から定まることで初めて計算することができる.このような文は自由変項*1を含んだ開いた項 (open term) として見做すことができる.このような発話に際しての状況を utterance con

                                                  『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
                                                • IDE: Haskell Language Server, binaries and installation

                                                  Posted on July 24, 2020 by Luke Lau If you’ve ever had to install haskell-ide-engine or haskell-language-server, you might be aware that it is quite a lengthy process. There are several reasons for this, two of the most significant being: Both haskell-ide-engine and haskell-language-server act as a kitchen sink for plugins. These plugins all depend on the corresponding tool from Hackage, and as a

                                                  • Generalized Church is the Curry-Howard of Knaster-Tarski

                                                    The proofs-as-programs principle (also known as the Curry-Howard isomorphism) sets up a correspondence between logical proof systems and type systems for programming languages. So occasionally a result is independently developed twice, once as a theorem and once as a program. Here’s a short and cute example of this phenomenon. (I read about it in this textbook, but I think it deserves to be better

                                                      Generalized Church is the Curry-Howard of Knaster-Tarski
                                                    • Optimizing Ray Tracing in Haskell

                                                      My first Haskell program and how easily I optimized it from 33m to 17s. 1800x1012 scene generated containing 533 objects rendered with 500 samples and 50,000 rays per pixel.BackgroundFew weeks back, my colleague at work, Eyal Kalerdon, shared his implementation of ray-tracing-in-one-weekend in Rust, which inspired me to try this as well. I, however, chose Haskell for this, thinking I’ll not only l

                                                        Optimizing Ray Tracing in Haskell
                                                      • Record constructors

                                                        This is a short post documenting various record-related idioms in the Haskell ecosystem. First-time package users can use this post to better understand record API idioms they encounter in the wild. For package authors, I also include a brief recommendation near the end of the post explaining which idiom I personally prefer. The example I’ll use the following record type as the running example for

                                                        • Competitive programming in Haskell: 2D cross product, part 1

                                                          Time for some more geometry! In my previous post I challenged you to solve Cookie Cutters, which asks us to scale the vertices of a polygon so that it has a certain prescribed area. It’s possible to solve this just by looking up an algorithm for computing the area of a polygon (see the “shoelace formula”). But the way to get good at solving geometry problems is not by memorizing a bunch of formula

                                                            Competitive programming in Haskell: 2D cross product, part 1
                                                          • Retrie: Haskell refactoring made easy

                                                            What’s new: We’ve open-sourced Retrie, a code refactoring tool for Haskell that makes codemodding faster, easier, and safer. Using Retrie, developers can efficiently rewrite large codebases (exceeding 1 million lines), express rewrites as equations in Haskell syntax instead of regular expressions, and avoid large classes of codemodding errors. Retrie’s features include the ability to rewrite expre

                                                              Retrie: Haskell refactoring made easy
                                                            • Amazon.co.jp: 圏論入門 Haskellで計算する具体例から: 雪田修一: 本

                                                                Amazon.co.jp: 圏論入門 Haskellで計算する具体例から: 雪田修一: 本
                                                              • Back to old tricks .. (or, baby steps in Rust)

                                                                I’ve been learning Rust for the past twenty days or so, working through the Blandy & Orendorff book, coding up things as I go. Once I got into playing with Rust traits and closures and associated types, the similarities to programming in Haskell with typeclasses, data structures, closure passing and associated types was pretty obvious. As a warm up I thought I’d try porting the stream fusion core

                                                                  Back to old tricks .. (or, baby steps in Rust)
                                                                • Haskellで超簡単にシングルバイナリを作る - Qiita

                                                                  はじめに Haskellをローカル開発環境で勉強していろいろな抽象的な知識を得たものの、実際活用するにあたってデプロイとかその辺どうするんだろう?やっぱりdocker使って簡単にやりたいな〜 でも、Goとかだと簡単に100%静的なシングルバイナリになるし、Rustとかもmuslを利用していい感じに行けそうだけどHaskellだとわからない>< というお気持ちが強かったので、簡単にデプロイできる100%静的リンクのシングルバイナリ作るぞ!と思って調べたお話です。 追記 下記の紹介しているものとほぼ同じような手順で、自分で拡張しやすいDockerfileでのみ構築されたDockerイメージを自分で作成したので、是非参考にしてみてください。 GitHub Docker Hub 対象読者 Haskellを本番で使ったことない人向け 大雑把に説明 概要 静的リンクされたバイナリを作るためのDocke

                                                                    Haskellで超簡単にシングルバイナリを作る - Qiita
                                                                  • Splittable pseudo-random number generators in Haskell: random v1.1 and v1.2

                                                                    This can arise when you have different threads. But it’s of prime importance in a lazy language like Haskell, since it makes it possible to generate deterministic random numbers lazily. For instance, split is used in QuickCheck’s Gen monad. An easy implementation of split is to duplicate the current state. But, the two parallel sequences will not be independent: indeed they will be identical. A sl

                                                                      Splittable pseudo-random number generators in Haskell: random v1.1 and v1.2
                                                                    • Query-based compiler architectures | Olle Fredriksson's blog

                                                                      Query-based compiler architectures by Olle Fredriksson 2020-06-25 Note: This is an old post originally from the documentation of the Sixten programming language, that I've touched up and fleshed out. After the time that it was written I've found out about Salsa, a Rust library with very similar goals to my Rock library, which is definitely worth checking out as well! Background Compilers are no lo

                                                                        Query-based compiler architectures | Olle Fredriksson's blog
                                                                      • http://dev.stephendiehl.com/new_decade.pdf

                                                                        • GitHub - kowainik/stan: 🕵️ Haskell STatic ANalyser

                                                                          [Back to the Table of Contents] ↑ Stan is a command-line tool for analysing Haskell projects. It discovers which parts of the code can potentially be improved, and offers suggestions on how to do so. Stan is searching for not only performance or error-prone code pieces, but it also can help with establishing and applying best-practices from the whole Haskell ecosystem. Although Haskell is a static

                                                                            GitHub - kowainik/stan: 🕵️ Haskell STatic ANalyser
                                                                          • IHP is a modern batteries-included Web Framework, built on top of Haskell and Nix.

                                                                            The Haskell Framework for Non-Haskellers. Blazing fast, secure, easy to refactor and the best developer experience with everything you need - from prototype to production.

                                                                              IHP is a modern batteries-included Web Framework, built on top of Haskell and Nix.
                                                                            • Security

                                                                                Security
                                                                              • Haskellでスクラッチから作曲してみた - Qiita

                                                                                元ネタとして貼った動画が非常に面白かったので、自分でも真似をしてみました。 この記事では、sin波を直接ゴニョゴニョして音を作っていきます。最終的には、簡易的な楽譜モナドを作り、楽譜に書いた通りの曲を再生して耳で聴けることを確認します。 最初の音 まずは音を出せるようにします。0から44800までの数をsinにぶち込み、sin波を生成します。 44800という数字はサンプルレートです。単位時間あたりに44800回sinから値を取り出すということです。 sampleRate :: Float sampleRate = 44800.0 wave :: [Float] wave = sin <$> [0.0 .. sampleRate] これは既に再生可能な一秒間の音です。再生してみましょう。 一度ファイルに書き出してからFFmpegを叩くことでこれを再生しようと思います。再生にはFFmpegが

                                                                                  Haskellでスクラッチから作曲してみた - Qiita
                                                                                • GitHub - hamler-lang/hamler: Haskell-style functional programming language running on Erlang VM.

                                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                    GitHub - hamler-lang/hamler: Haskell-style functional programming language running on Erlang VM.