並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1261件

新着順 人気順

haskellの検索結果241 - 280 件 / 1261件

  • 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
    • ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog

      この記事は以下のページに移転しました. blog.ryota-ka.me この記事は Haskell Advent Calendar 2020 20日目の記事です. TL; DR タイトル 問題設定 ユースケース層とサーバ層が存在する Web アプリケーションを考える.サーバ層はユースケース層を呼び出すことができるが,ユースケース層はサーバ層について無知でなければならない. +----------------+ | server layer | +-------+--------+ | depends on +-------v--------+ | use case layer | +----------------+ このようなアプリケーションのAPI リクエストハンドラにおいて,複数のユースケースを合成して呼び出すケースを例に挙げ,それぞれのユースケースが投げうるエラーをうまく扱う o

        ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
      • GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう! - kakakakakku blog

        GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,やはり CI (Continuous Integration) で気付ける安心感はある! www.docker.com hadolint (Haskell Dockerfile Linter) hadolint を使うと Dockerfile に警告を出してくれる.また Dockerfile の RUN は,シェルスクリプトの Linter として有名な ShellCheck を使って警告を出してくれる.例えば FROM centos:latest のように FROM

          GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう! - kakakakakku blog
        • Haskellプロジェクトのベストプラクティス

          Haskellプロジェクトの「良い習慣」と考えられるやつをまとめてみます。あくまで私の個人的な意見です。 プロジェクト固有のPrelude Prelude に相当するモジュールをプロジェクト独自に持っておくと便利ではないか、という話をします。代替Preludeの話ではありません。 プロジェクト固有のPreludeがあると便利な理由 理由の一つは、標準 Prelude の変化です。直近では次のような変化がありました: GHC 9.4: ~ 型演算子が追加(これまでは構文だった) GHC 9.6: liftA2 が追加 GHC 9.10(見込み): foldl' が追加 もっと昔に遡ると、Semigroup((<>)) が増えるやつなどがありました。 この帰結として、 新しいGHCで名前の衝突が起きやすくなる 新しいGHCで「冗長なインポート」の警告が出やすくなる ことが言えます。これらの問題

            Haskellプロジェクトのベストプラクティス
          • Why Dark didn't choose Rust

            Welcome again HN! Dark is a programming language, structured editor, and infrastructure—all in one—whose goal is to make it 100x easier to build backend services. Check out the website, our What is Dark post, and How Dark deploys in 50ms for more. Thanks for checking us out! This is the third or a 3-part series: Leaving OCaml and Dark's new backend will be in F#. You can enjoy this without reading

              Why Dark didn't choose Rust
            • TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った

              実用的な静的型付き言語には、たいていの場合危険なことをするバックドアが存在するものですが[1]、TypeScriptには一見してわからない場所にバックドアが存在するという特徴があります。 というわけで、様々な方法でunsafe_cast<T, U>(x: T): Uを書いてみました。便利。 謝辞: テクニックの多くはtkr氏の記事に依っています。 脚注 ScalaのasInstanceOf[T], HaskellのunsafeCoerce, OCamlのObj.magic, ... ↩︎

                TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
              • PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足

                多くのプログラミング言語の処理系に、攻撃者が任意のコマンドを実行できる深刻な脆弱性が見つかった。JPCERTコーディネーションセンター(JPCERT/CC)と情報処理推進機構(IPA)が共同運営する脆弱性対策情報ポータルサイト「JVN(Japan Vulnerability Notes)」で2024年4月15日に公開された。 脆弱性が確認されたのは「PHP」「Rust」「Haskell」の各言語処理系とJavaScript/TypeScriptの処理系「Node.js」、音声や動画をダウンロードできる高機能なコマンド「yt-dlp」である。ただし、この脆弱性の影響を受けるOSはWindowsだけで、LinuxやmacOSなどの他のOSには影響しない。 多くのプログラミング言語は、プログラムの中からOS上でコマンドを実行する機能を持つ。Windowsでは言語処理系が「CreateProces

                  PHPやNode.jsなどに任意コマンド実行の脆弱性、原因はWindows仕様の理解不足
                • Interview with Ryan Dahl, Node.js & Deno creator by Evrone

                  In an interview with Evrone, Ryan Dahl speaks about the main challenges in Deno, the future of JavaScript and TypeScript, and tells how he would have changed his approach to Node.js if he could travel back in time. Introduction Ryan Dahl is a software engineer and the original developer of the Node.js, and the Deno JavaScript and TypeScript runtime. We are glad to have had an opportunity to speak

                    Interview with Ryan Dahl, Node.js & Deno creator by Evrone
                  • mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog

                    日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 こんにちは。ブラウザ外のWebAssemblyに関心が偏りすぎて、ブラウザにおけるWebAssemblyについて聞かれると戸惑うことが多い山本悠滋です。普段はIIJ-IIの技術開発室という部署で、IIJ本体をサポートするための開発をいろいろ行ったり、WebAssemblyを応用した新しいウェブサービスの開発に取り組んでいます。 今回は、開発している「WebAssemblyを応用した新しいウェブサービス」のサンプルとして、mrubyのインタープリタをWASIに準拠したWebAssemblyファイルにコンパイルするまでの課程や、それを通じてわかった、今のWebAssemblyに足りない

                      mrubyを通じてWebAssemblyの未来を想う~新しいウェブサービスの開発課程にて | IIJ Engineers Blog
                    • HERP における Web フロントエンド開発概観 (2022年春編)

                      はじめに# この記事は,HERP における Web フロントエンド開発の概観を,世間の開発者に——特に潜在的・顕在的な候補者の方に——知ってもらうことを目的として書かれた.HERP では現在 Web フロントエンドエンジニアを積極的に募集しているが,仮に入社したとしてどのような仕事をすることになるかのイメージが付いた方が,検討の候補に入れてもらいやすいのではないかという目論見による.また,採用している技術スタックにも珍しいものがあるため,単純に読み物として楽しめるかもしれない.なお,開発の実情について知ってもらうのが目的であり,実装の良し悪しについて議論することは目的としていない. HERP でのアプリケーション開発# B2B SaaS として,主に IT スタートアップ企業向けの,採用管理システムおよびタレントプールシステムを開発・提供している. そもそもプロダクトを通じて何を実現したい

                      • Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ

                        はじめに 開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 本記事では、アルゴリズムについて新たな視点を与えてくれる本「Algorithm Design with Haskell」を紹介します。 本記事はHaskell中級者向けです。Haskellの文法や、代表的なリスト操作関数を知っていることを前提としています。 はじめに Algorithm Design with Haskellとは 準備: 関数の同値関係 貪欲アルゴリズムのPART紹介 貪欲アルゴリズムとは 候補の生成と選択 貪欲アルゴリズムへの改善 まとめ 採用情報 Algorithm Design with Haskellとは Algorithm Design with Haskell 作者:Bird, Richard,Gib

                          Algorithm Design with Haskellでアルゴリズムを学ぶ - 朝日ネット 技術者ブログ
                        • ZodでAlways-Valid Domain Modelを実現する

                          課題意識 特定の商品を数量を指定して購入できるECサービスのドメインモデルを表現とします。TypeScriptで構築する際に、「数量」を単にnumber型で扱うことは可能ですが、よりロバストな設計を目指す上で以下の2つの方法論があります。 Refinements(値の制約を表す): 「数量」は一般的に自然数です。1度の注文で指定できる上限を設けるビジネスルールがあると仮定します。この場合、number型に「自然数」「上限付き」の制約を加えた値として表現します。 Branded Types: (同じ構造の型を区別する): 「価格」などの他のnumber型と混同されないように、これらの数値を型レベルで区別したいです。JavaやC#に見られる公称型の概念をTypeScriptで模倣するBranded Typesのテクニックを用いることで、これらの誤った利用を型システムで防ぐことができます。 Br

                            ZodでAlways-Valid Domain Modelを実現する
                          • Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム

                            Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム Buck2は同社内で数千人のエンジニアに使われており、1日あたり数百万回のビルドを実行していると説明されています。 Rustで開発したことによりビルドの速度が約2倍に Metaは2013年にBuck2の前身となるビルドシステムの「Buck」をオープンソースで公開しています。BuckはJavaで開発されています。 Buck2は、新規にRust言語で開発されたことでガベージコレクションによる処理の一時停止などが避けられたため、より高速なビルドの実行が可能になっています。Meta社内ではBuckと比較して約2倍高速になったとのことです(ただしJavaは優れたメモリプロファイリングツールなどの優位点があると、フォローもしています)。 また、Buckではリモートで

                              Meta(旧Facebook)が大規模向けのビルドシステム「Buck2」をオープンソースで公開。高速かつ高信頼で拡張可能なビルドシステム
                            • WebAssembly backend merged into GHC

                              Tweag has been working on a GHC WebAssembly backend for some time. Recently, the WebAssembly backend merge request has landed in GHC, and is on course to appear in the upcoming 9.6 release series. This post will give a quick demonstration of how to try it out locally, and explain what comes in this patch and what will be coming next. Playing with WASM locally If you’re using nix on x86_64-linux, c

                                WebAssembly backend merged into GHC
                              • Canarytokensサービスを試してみた - こんとろーるしーこんとろーるぶい

                                ある調べものをしていたところ、Canarytokensというサービスがあることを知った。 canarytokens.org Canarytokensはカナリアトークンを生成するサービスであり、無料で利用できるほか、githubでソースコードやDockerfileが公開されているため自分でサービス稼働環境を構築できる。カナリアトークンとはターゲット(被害者)がWebページ、電子メール、ファイルなどのリソースにアクセスする操作をしたときに、そのアクセスした事実やターゲットの環境情報(IPアドレス、UserAgent、ユーザ名など)を攻撃者に通知するための仕掛けである。 このサービスを知った時は、アクセス解析で使われるようなWebページに極小の透明画像やiframeを埋め込むような方式を想像したが、ドキュメントを読んでいると他にも様々な方式をサポートしていることがわかった。そこで、実際にどういっ

                                  Canarytokensサービスを試してみた - こんとろーるしーこんとろーるぶい
                                • Advancing Excel as a programming language with Andy Gordon and Simon Peyton Jones - Microsoft Research

                                  Episode 120 | May 5, 2021 Today, people around the globe—from teachers to small-business owners to finance executives—use Microsoft Excel to make sense of the information that occupies their respective worlds, and whether they realize it or not, in doing so, they’re taking on the role of programmer. In this episode, Senior Principal Research Manager Andy Gordon, who leads the Calc Intelligence tea

                                    Advancing Excel as a programming language with Andy Gordon and Simon Peyton Jones - Microsoft Research
                                  • 究極の?トランザクションスクリプト用言語Verse | フューチャー技術ブログ

                                    Unreal Engineで有名なEpic Gamesが、現在開催中のGDC(Game Developer Conference)でVerseの詳細を解説しており、その動画が公開されています。 ドキュメントもすでに公開されています。 https://dev.epicgames.com/documentation/en-us/uefn/verse-language-reference 現在処理系は、Unreal Editor for Fortnite(UEFN)の中に組み込まれているようですが、Windowsにしか対応していません。ちょろっと動かした程度で、まだコードをしっかり書いてはなくて、プレゼンを見た感想で書いているので、いろいろ間違ったところとかもあるかもしれませんが、そういうのはご指摘いただいたり、Pull Request(ブログの上の鉛筆アイコンで送れます)を出してもらえれば、と

                                      究極の?トランザクションスクリプト用言語Verse | フューチャー技術ブログ
                                    • GHCのIOマネージャの歴史と僕の苦悩 - あどけない話

                                      これは、Haskell Advent Calendar 2021 の8日目の記事です。 Haskellのコンパイラとして事実上一択となったGHCには、「軽量スレッド」が実装されています。軽量スレッドは、ネイティブスレッドよりも軽量なスレッドで、他の言語では「グリーンスレッド」とも呼ばれています。Haskellerが並行プログラミングをするときは、軽量スレッドを息を吸うかのように使います。 複数の軽量スレッドの入出力を束ねるのが、IOマネージャです。IOマネージャも単なる軽量スレッドであり、OSから入出力のイベントを受け取り、それぞれの軽量スレッドにイベントを通知します。 軽量スレッド(っぽい)機能を提供する他の言語では、GHCのIOマネージャを参考にしているようです。僕はIOマネージャの開発に深く関わっています。この記事ではIOマネージャの歴史をまとめるとともに、主にmacOSでの実装に関

                                        GHCのIOマネージャの歴史と僕の苦悩 - あどけない話
                                      • NestJSのススメ ~Expressを超えてゆけ~ - Qiita

                                        この記事は、今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar 2019 23日目の記事です。 導入 皆さんこんにちは。らいパン粉という者です。twitter→https://twitter.com/elipmoc101 さて、皆さんはバックエンドのプログラミング言語に何を選ぶでしょうか。 PHP?Ruby?JavaScript(Node.js)? それともElixir、Scala、Go、Rust、Haskell等でしょうか。Coolですね。 最近、フロントエンドではTypeScriptが有名です。 この際、バックエンドもフロントエンドもTypeScriptでサクッと開発してみたいと思いません?僕は思いませんけど。(Ebio Syntax) そんなわけで、TypeScriptでサクッとバックエンド開発ができるNestJSを紹介していきます。

                                          NestJSのススメ ~Expressを超えてゆけ~ - Qiita
                                        • UoPeopleでComparative Programming Languages(プログラミング言語比較論)を修了した - えんぴつぶろぐ

                                          オンライン大学 University of the People でComparative Programming Languages (CS4402) を修了したのでその感想を書きます。 これまでのUoPeople関連の記事はこちら: UoPeople カテゴリーの記事一覧 - えんぴつぶろぐ はじめに プログラミング言語のパラダイムの変化を追いながら、命令型言語と非命令言語(関数型や論理型など)の特徴を学び比較を行うコースです。 各言語の歴史や特徴だけでなく、コンピューターシステムのアーキテクチャやコンパイルの仕組みなども触れるので、今までのCS系コースの総復習的な内容だと感じました。 #UoPeople プログラミング言語比較論(#CS2204)の感想。 言語の比較だけじゃなく今までのCS系コースの総復習的な内容だった。 ノイマンアーキテクチャ、チューリングチャーチ理論から始まるプロ

                                            UoPeopleでComparative Programming Languages(プログラミング言語比較論)を修了した - えんぴつぶろぐ
                                          • Elm at Rakuten

                                            lucamug Posted on Jan 25, 2021 • Updated on Mar 4, 2023 • Originally published at engineering.rakuten.today In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Ber

                                              Elm at Rakuten
                                            • 私がエンジニア向け編集者になるまで - kondoyukoの踊る編集室

                                              こんにちは、近藤佑子(@kondoyuko)です。 渋谷のIT企業4社が主催するカンファレンス「BIT VALLEY 2021」において、「私たちがエンジニアになるまで」というセッションでモデレーターを担当しました。 このセッションの企画のもとになった「1人の女性がエンジニアになるまで」という記事は、自分はこれまでどのように生きてきたんだろうと、ふりかえりたくなる内容だなと思います。 note.com 最近思うのは「いかにして楽しく働けるだろうか」ということ。そのためには自分がどうなりたいのかをイメージすることが大事だと、いろんな人の話や本を読むなどして理解しているけど、それは、結局は自分自身で作っていかないといけない。雷に打たれるような使命感はどこにあるんだろう? それは過去の自分にあるんじゃないか? と考えました。今の仕事面の価値観に影響してそうな部分を書いてきたつもりでしたが、130

                                                私がエンジニア向け編集者になるまで - kondoyukoの踊る編集室
                                              • 遅延評価でデバッグが困難になる状況

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

                                                  遅延評価でデバッグが困難になる状況
                                                • R50のリープフロッグ ~ 西暦2020年の今、偏差値50のプログラマを目指すお前が学ぶべきこと - Qiita

                                                  タイムスタンプ 初回投稿日:2020年06月26日 最終更新日:2020年07月18日 対象読者 この投稿は、ちょうど20年ほど前にソフトウェアエンジニアとしてのピークを迎えていた当時30歳くらいの自分自身に宛てて書いた手紙です。 したがって、この内容は個人的なものであり、くたびれた老兵の戯言であり、ピントがずれ時代を捉えきれておらず、網羅的でもなければ他者には通じないアナロジーに溢れていて、多くの方にとって役に立たないばかりか、酷い勘違いや致命的な間違いを含んでいるかもしれません。 とは言うものの、現在の私のように、今もなお 20 年前の知見や思考パターンが生活のベースになっている方、新しい知識や用語は押さえているもののそれが今一つ自身の血肉になっていないと感じている方、最近の技術トレンドを押さえたいけれど情報の洪水に溺れそうになり何から手を付ければいいかわからないという方にとっては、あ

                                                    R50のリープフロッグ ~ 西暦2020年の今、偏差値50のプログラマを目指すお前が学ぶべきこと - Qiita
                                                  • 技術書典を応援してラムダノートの電子書籍を半額で手に入れよう!(キャンペーンのお知らせ)

                                                    技術書典を応援してラムダノートの電子書籍を半額で手に入れよう!(キャンペーンのお知らせ) 2020年2月28日 いつもご来店ありがとうございます。 2020年2月29日(土)と3月1日(日)の2日間、ラムダノートの電子書籍の全タイトルを対象としたセールを実施します。 3/2 追記:セールは終了しました。ありがとうございました。 今回のセールは、両日に予定されていた技術書典8の中止をうけて開催するものです。 技術書典8を企画し準備されてきた運営の皆さまには、中止にあたり本当に大きな負担がかかっていることと思います。 そこで今回のセールでは、その売上の一部を、技術書典運営事務局への金銭的な支援にあてさせていただくことにしました! セールの概要は以下の通りです。 『n月刊ラムダノート電子版』を同時に購入すると、電子書籍がすべてどれか1冊半額に!(2/29 7:19修正) 購入金額のうち『n月刊ラ

                                                      技術書典を応援してラムダノートの電子書籍を半額で手に入れよう!(キャンペーンのお知らせ)
                                                    • Go vs Rust: Writing a CLI tool - cuchi.me

                                                      Home > Posts > Go vs Rust: Writing a CLI tool Published at Jul 14th, 2020 Last updated at Aug 4th, 2020 This text is about my adventure writing a small CLI application (twice) using two languages I had little experience with. If you are eager to jump right into the code and compare it yourself, check it out the Go source and the Rust source. About the Project I have a pet project called Hashtrack,

                                                      • プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか(電子書籍のみ)

                                                        PDFのみの提供です 紙書籍も必要な場合は、こちらからお得なセットをお求めください 紙書籍のみを差額等でお求め頂くことはできません そのプログラム、CPUの性能を引き出せますか? Takenobu Tani 著 312ページ A5判 ISBN:978-4-908686-16-0 2023年1月25日 第1版第1刷 本書の解説で利用するコード(著者によるGitHubリポジトリ) 正誤情報など ソフトウェアの価値は、ハードウェアで実行されることにより、現実のものになります。そのために不可欠なのがCPUです。したがってソフトウェアの価値は、CPUの性能、すなわち「できるだけ高速にソフトウェアを実行すること」にかかっているとも言えるでしょう。 現代のCPUの性能は、「メモリとやり取りしながら命令を実行していく」というCPUの原理的な仕組みを知るだけでは説明できません。ソフトウェアを高速に実行するた

                                                          プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか(電子書籍のみ)
                                                        • 競技プログラミングの問題を自動で解きたい - うさぎ小屋

                                                          TL;DR 問い「競技プログラミングの問題は自動で解けるか?」 答え「ある程度は自動で解けるだろう。ただし問題の形式化を人間に任せる必要はある」 問い’「競技プログラミングの問題を自動で解くソルバは、具体的にはどのような形になるか?」 答え’「少なくとも初期のソルバは、最適化付きのトランスパイラと呼ばれるものになるだろう」 このような議論に従い、競技プログラミングの問題の実用的なソルバとして、Python から C++ への最適化付きトランスパイラを開発している。 目次 TL;DR 目次 競技プログラミングの問題を解くとはどういうことか 競技プログラミングのソルバは形式化を人間に任せることになるだろう 競技プログラミングの問題を自動で解くことは不可能ではない 具体例 1 具体例 2 競技プログラミングのソルバは (初めは) トランスパイラの形がよいだろう 競技プログラミングのソルバは (近

                                                          • x87 FPUの呪い - Qiita

                                                            それぞれの説明はこんな感じである: X: Infinity Control 無限大の符号の扱いを変える設定だったらしい。IEEE 754が標準化される前の痕跡で、387以降は意味を持たない。 RC: Rounding Control 丸め方法を指定する。 00B: Round to nearest (even) 01B: Round down (toward $-\infty$) 10B: Round up (toward $+\infty$) 11B: Round toward zero (Truncate) PC: Precision Control 演算結果の仮数部の精度を指定する。 00B: Signle Precision (24 bits) 01B: Reserved 10B: Double Precision (53 bits) 11B: Double Extended Pr

                                                              x87 FPUの呪い - Qiita
                                                            • 技術書典7落選特別直販セール開催(本日のみ電子版全商品50%オフ)

                                                              ご来店ありがとうございます。 本日、2019年9月22日は、池袋サンシャインシティにて技術書典7が開催されています。ラムダノートは残念ながら抽選に落選してしまい、技術書典7へは出店しておりませんが、技術書典の最中でも直販サイトに来店くださる方への感謝の気持ちを込めて、本日限定でタイムセールを実施します。対象商品は以下のタイトルの電子書籍です。すべて今だけ50%オフにてお買い求めいただけます。 本セールは終了いたしました。たくさんのご利用ありがとうございました。 『n月刊ラムダノート Vol.1, No.2』(収録記事:LISP 1.5の風景、計算機科学から見たディープラーニング、 Q#で始める量子プログラミング) 『n月刊ラムダノート Vol.1, No.1』(収録記事:TCPの再送制御機構、「 コルーチン」とは何だったのか?、MLOps の歩き方) 『プログラミングHaskell 第2版

                                                                技術書典7落選特別直販セール開催(本日のみ電子版全商品50%オフ)
                                                              • 「モノイド」マジックでRubyとRailsをパワーアップしよう(翻訳)|TechRacho by BPS株式会社

                                                                概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Deeper Magics: Monoids in Ruby and Rails - DEV Community 原文公開日: 2019/11/01 著者: Brandon Weaver -- RubyとJavaScriptとキツネザルと言葉遊びを愛しています。 日本語タイトルは内容に即したものにしました。 自分たちが今本当に欲しかったもの Rubyには、オブジェクト指向プログラミング由来でないさまざまなパターンもあります。関数型の世界からやってきたパターンもあれば、面白いことに、おそらくまったくそれと気づかずに既に使っているパターンもあります。 今そうしたパターンを学ぶ理由は何でしょう?パターンの名前はそれだけで強力ですし、それらのコンセプトを認識すれば、より強力で素晴らしい抽象化を構築できるようになります。 その中でも特に最近

                                                                  「モノイド」マジックでRubyとRailsをパワーアップしよう(翻訳)|TechRacho by BPS株式会社
                                                                • グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜

                                                                  コミュニティ抽出とは簡単に言えばグラフにおけるノードのクラスタリング手法です。具体的なアルゴリズムとしてはGirvan–Newman法をはじめ様々なアルゴリズムが存在しますが、この記事では去年(2019年)提案された新しい手法について解説したいと思います[1]。 [1907.03993] Community Detection on Networks with Ricci Flow 話の元になっているのはこちらの論文で、グラフをリッチフローによって変形し、伸びたエッジを切断していくことでクラスタを求めるというアルゴリズムです。リッチフローという聞き慣れない言葉が出てきましたが、ちゃんと後で説明するので気にせず進めましょう。 まずは実際にグラフのクラスタリングを行う様子をアニメーションで見てみてください。 アルゴリズム自体はそれほど難しくありませんが、背景を含めて理解するためには2つの理論

                                                                    グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
                                                                  • データでわかるRustの開発者達 〜Rust Survey 2021の深堀 | gihyo.jp

                                                                    Rustの開発チームは毎年末にRustユーザのサーベイを行っています。このサーベイは開発者のバックグラウンドから普段使っているツールまで幅広く問うもので、コミュニティの中心がどこにあるのか理解するのに大変役立ちます。特に、周りにRustaceanがいない方にとっては「こういうのってみんなどうしてるの?」という疑問はよく発生するでしょう。そういうときにサーベイの結果はコミュニティのトレンドを追う一助になります。 2021年は2021/12/08から2021/12/22の期間にサーベイが行われました。そこで実施されるアンケートは、英語の他、中国語(簡体字、繁体字⁠)⁠、フランス語、ドイツ語、日本語、韓国語、ポルトガル語、ロシア語、スペイン語に翻訳されました。 例年なら詳細なレポートが提出されるのですが、今年は比較的簡素なもののみであったため、大きな注目は浴びませんでした。その代わりにサーベイの

                                                                      データでわかるRustの開発者達 〜Rust Survey 2021の深堀 | gihyo.jp
                                                                    • From Rust to TypeScript | valand.dev

                                                                      Edits: HN discussion here: https://news.ycombinator.com/item?id=24453007#24454277. Thank you HN folks for the corrections, kind responses, and insightful discussion. *fixes in Getting Rid of Exceptions snippet 1. I was introduced to Rust in 2018 and has been enamored since. Rust is a system programming language, much like C++. Unlike C++ though, being relatively new, its language design is more mo

                                                                      • Rustでのモデル駆動設計について - Chatwork Creator's Note

                                                                        こんにちはかとじゅんです。 この記事は、ドメイン駆動設計 Advent Calendar 2020の23日目の記事です1。DDDというよりRustの記事になってしまった…。 Rustの勉強を始めたのは2017年あたりと古いのですがなかなか身が入らず、本腰入れたのは今年の11月ぐらいでした(遅ッ。Scalaで実装してたライブラリをRustに書き換えたおかげでようやく開眼しました2。 というわけで、今回は完全趣味の領域であるRustでドメインモデルをどう実装すればいいのかについて、僕の意見やアイデアなど雑にまとめてみたいと思います。まぁこれについてもいろんな観点がありますが、値オブジェクトやエンティティを実装するならという観点です。 ※あ、Rustの所有権システムなどの言語仕様については細かく触れないので、各位適宜正しい情報源を参照してください。 構造体とメソッド 見慣れた(見飽きた)銀行口座

                                                                          Rustでのモデル駆動設計について - Chatwork Creator's Note
                                                                        • Visitor pattern in TypeScript

                                                                          Visitor pattern in TypeScript Imagine that you are writing a program that can draw different shapes: circles, triangles, squares, etc. You represent them by corresponding data types. Depending on a language you use, these shapes become distinct classes, structs, members of an enum or parts of some algebraic data type. Because you also want to be able to do something with these shapes, you describe

                                                                            Visitor pattern in TypeScript
                                                                          • GitHub - HigherOrderCO/HVM: A massively parallel, optimal functional runtime in Rust

                                                                            Higher-order Virtual Machine 2 (HVM2) is a massively parallel Interaction Combinator evaluator. By compiling programs from high-level languages (such as Python and Haskell) to HVM, one can run these languages directly on massively parallel hardware, like GPUs, with near-ideal speedup. HVM2 is the successor to HVM1, a 2022 prototype of this concept. Compared to its predecessor, HVM2 is simpler, fas

                                                                              GitHub - HigherOrderCO/HVM: A massively parallel, optimal functional runtime in Rust
                                                                            • GHCのバックエンドについて | 雑記帳

                                                                              先日リリースされたGHC 9.2.1で、64ビットArm(AArch64)向けのネイティブコード生成器(Native Code Generator; NCG)が実装された。これを機会にGHCのバックエンドについて簡単にまとめてみる。 概略 GHCでHaskellプログラムをコンパイルすると、いくつかの中間言語を経て最終的には機械語が出力される。 この工程の最後の部分を「バックエンド」と呼ぶ。 GHCには Native Code Generator (-fasm)LLVM backend (-fllvm)unregisterised via-C backend の3種類のバックエンドが存在する。このほか、バイトコードインタープリターと-fno-codeもデータ型的にはバックエンドの一種として扱われている。(参照:compiler/GHC/Driver/Backend.hs) Native C

                                                                              • Haskell: The Craft of Functional Programming (PDF)

                                                                                I’m happy to announce that the PDF of Haskell, The Craft of Functional Programming (3rd edition) is available to view and download for free. Later in the year I’ll revise it and make it available as an online text. But for now, here it is, uncorrected: https://simonjohnthompson.github.io/craft3e/craft3e.pdf

                                                                                  Haskell: The Craft of Functional Programming (PDF)
                                                                                • 関数型プログラミングへの移行進む「Excel」--重要な「動的配列」 - ZDNet Japan

                                                                                  印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 「Microsoft Office」は、開発ツールであるとは思えないかもしれないが、これまで長きにわたり、多くの開発ツールチェーンで中心的な位置を占めてきた。特によく使われる2つのアプリも、あまり想像がつかないだろうが、「Excel」と「PowerPoint」だ。 いずれも開発においてさまざまな役割があり、正式なアプリケーション開発プログラムの一部として、またアプリを簡単に作成し、ユーザー自身のプログラミングスキルを使って緊急のビジネスニーズを解決する手段として利用されている。 Excel:秘密のプログラミング環境 Excelは非常に興味深い開発ツールの例だ。見慣れたスプレッドシートの裏側には一連のプログラミング言語があり、非常に高度な

                                                                                    関数型プログラミングへの移行進む「Excel」--重要な「動的配列」 - ZDNet Japan