並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 1261件

新着順 人気順

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

  • Green Vs. Brown Programming Languages

    This article explores programming language preferences. You might prefer Earthly. It can streamline your build processes. Check it out. The Data The Stack Overflow Developer Survey1 results are a great source of information about how developers work. I was looking at the 2020 results for some ideas on what programming languages we should add to our documentation on containerized builds, and I noti

      Green Vs. Brown Programming Languages
    • HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG

      最近リリースされた GHC 9.0.1 で使えるようになった LinearTypes 言語拡張について気になったので調べた。 LinearTypes言語拡張とは GHC9.0.1から使えるようになった言語拡張で、Linear Typeを導入できる。ただ、上記リリースノートに “a first cut” とある通り、まだ実験的な機能としてリリースされた段階のようだ。 通常のGHCの言語拡張のように とすることで使えるようになる Linear Typeとは そもそもLinear Typeとはどのような概念なのか、簡単に説明すると、「関数の引数がちょうど1度だけ評価される」、という条件を指定できるもののようだ。 理論的な基礎となるLinear type systemsについては前から広く知られていたものの、なかなか実装までは至らず、今回Haskellで晴れて実装までこぎつけたとのことだった。 具

        HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG
      • Switching to Elixir

        A few months ago I started a new job at a company that uses Elixir as its main language on the backend. I've never written a line of Elixir or Erlang before in my life, but I've heard a lot about it and Erlang is familiar because I've played around with Prolog for a bit. Thanks to the heavily Ruby-inspired syntax, Elixir was a synch to pick up. I might not be an expert on best practices, architect

        • Introductory resources to type theory for language implementers

          This post briefly tours resources that helped introduce me to type theory, because I’m frequently asked by others for resources on this subject (even though I never had a formal education in type theory). Specifically, these resources will focus more on how to implement a type checker or type inference algorithm. Also, my post will be biased against books, because I don’t tend to learn well from r

          • 「STEINS;GATE」とコラボしたITエンジニア向けプログラミングゲーム“電脳言語のオルダーソンループ”が本日よりpaizaで無料公開

            「STEINS;GATE」とコラボしたITエンジニア向けプログラミングゲーム“電脳言語のオルダーソンループ”が本日よりpaizaで無料公開 編集部:maru paizaは本日(2021年7月28日),同社が運営するITエンジニア向けの転職・就職・学習プラットフォーム「paiza(パイザ)」にて,「STEINS;GATE」とコボしたプログラミングゲーム「電脳言語のオルダーソンループ」を無料公開した。 電脳言語のオルダーソンループは,プログラミング問題を解いて物語を進めるアドベンチャーゲーム。「STEINS;GATE」のシナリオを手掛ける安本 了氏がゲーム内ストーリーを担当しており,ここだけのオリジナルストーリーが楽しめるという。 今回の問題は,ITエンジニア経験者(中・上級者)向けで,アルゴリズムの構築などさまざまなプログラミングミッションが用意されているとのこと。Java,Python,P

              「STEINS;GATE」とコラボしたITエンジニア向けプログラミングゲーム“電脳言語のオルダーソンループ”が本日よりpaizaで無料公開
            • 日本の Twitter ユーザーが好きな言語・嫌いな言語2019 - Qiita

              概要 2019年10月5日、(おそらく) このツイートを端緒として、多くのエンジニアが自身のプログラミング言語歴や好みについて語るという試みがなされ、10月14日には自然言語クラスタを巻き込んだこともあってかトレンド入りを果たしました。 1. 最初の言語: Basic 2. 難しかった言語: Javascript 3. 一番使っている言語: C++ / C# 4. 嫌いな言語: HTML / CSS 5. 一番好きな言語: C++ 6. 初心者にオススメ: Unity 他の人のも聞いてみたいですね。 — たつなみ (@qrostar) 2019, 10月 5 本記事では、10月18日18時までに集まった1480件のツイートの集計結果を示したいと思います。なお結果にはプログラミング言語ではなくマークアップ言語も含まれていますが、票数が多かったこともありそのままにしてあります。ご了承ください。

                日本の Twitter ユーザーが好きな言語・嫌いな言語2019 - Qiita
              • Golang Mini Reference 2022: A Quick Guide to the Modern Go Programming Language (REVIEW COPY)

                Golang Mini Reference 2022 A Quick Guide to the Modern Go Programming Language (REVIEW COPY) Harry Yoon Version 0.9.0, 2022-08-24 REVIEW COPY This is review copy, not to be shared or distributed to others. Please forward any feedback or comments to the author. • feedback@codingbookspress.com The book is tentatively scheduled to be published on September 14th, 2022. We hope that when the release da

                • type family を使って再帰的 ADT をオープンにする

                  元ネタは Trees that grow . Haskell では代数的データ型 (ADT) を使ってプログミングに使うデータ構造を定義し,その構造を操作することによりプログラミングを行う. ADT はパターンマッチが容易で,再帰的に定義でき,基本的に閉じた構造になっている.そのため便利な反面,その機能が保守で仇となる場合もある.この問題は古くから知られており,いくつかの解決策も提案されてきた.今回はこのうち,現在 GHC で採用されつつある type family を使った解決方法を紹介する. なお,環境として以下を想定している. The Expression Problemプログラミング,特に Haskell を使用したプログラミングにおいて,データ型は非常に重要な役割を持つ.特に,一部のプログラムにおいては,根幹をなすデータ型がいくつか存在するような場合もある.この場合データ型の扱い

                    type family を使って再帰的 ADT をオープンにする
                  • How Meta built the infrastructure for Threads

                    On July 5, 2023, Meta launched Threads, the newest product in our family of apps, to an unprecedented success that saw it garner over 100 million sign ups in its first five days. A small, nimble team of engineers built Threads over the course of only five months of technical work. While the app’s production launch had been under consideration for some time, the business finally made the decision a

                      How Meta built the infrastructure for Threads
                    • Testing sync at Dropbox

                      …and how we rewrote the heart of sync with confidence. Executing a full rewrite of the Dropbox sync engine was pretty daunting. (Read more about our goals and how we made the decision in our previous post here.) Doing so meant taking the engine that powers Dropbox on hundreds of millions of user’s machines and swapping it out mid-flight. To pull this off, we knew we would need a serious investment

                        Testing sync at Dropbox
                      • State モナドの代わりに Reader モナドを使う

                        注意 この記事は公開当時主張に誤りを含んでいたため,大幅に書き直しています.また,公開当時の主張の誤りについても,付録として載せておきました. Haskell で State モナドはモナドの代表格だ.Haskell 入門者は,多くの場合,状態を伴った計算を State モナドで書くことを習うだろう.しかし,実用上の多くの場面では,State モナドではなく他の選択肢を選んだ方がいい場合がある.一つの選択肢が,Reader モナドと可変参照を使う方法だ.今回は,この手法を使う利点と利用場面について考えていこうと思う. なお,環境として以下を想定している.

                          State モナドの代わりに Reader モナドを使う
                        • Remark で広げる Markdown の世界

                          はじめましてこんにちは、はるさめです。本誌は名目上 Vivliostyle について紹介する同人誌なのですが、またしても空気を読まず Vivliostyle ではない OSS プロジェクト「Remark」について紹介したいと思います。 Remark Remark とは「Markdown processor」という紹介文の通り、Remark で書かれたテキストを読み込み様々な変換を施すことができる JavaScript 製のライブラリです。Remark は様々なライブラリと組み合わせて目的の形式のテキストに変換でき、Rehype と一緒に使うことで Markdown を HTML に変換できます。同様の処理をしてくれるライブラリとしては Marked.js が有名ですが、Remark の強力な機能は、Markdown を 抽象構文木(AST)に変換することで、より柔軟に構文を改造できる点です

                          • Elmに興味があるなら見ておきたいIzumiSyのスライド3選 - Runner in the High

                            過去に「NoRedInk*1の筋肉の人」としておなじみリチャード・フェルドマンをフィーチャーする記事を書いたので、今度は自分をフィーチャーしようと思う。 www.izumisy.work おすすめはやはり一番最後の「jQueryからElmまで」だが、正直このスライドはElmに関する説明成分が少なかったと反省しているところがある。なので、個人的にはこの記事で並べている順番に見てもらうほうが、Elmに対するわかりが生じやすいと思う。 Elm, the functional frontend Elmの基本的な部分をざっくり説明するスライド。このスライドは関数型プログラミングカンファレンス2019で使った。Elm意外にもRustやElixirなどの関数型プログラミングのエッセンスを持つ言語の人たちとコラボレーションするタイプのイベントだったので、関数型的な部分に言及するのは少なめでElmの良さをア

                              Elmに興味があるなら見ておきたいIzumiSyのスライド3選 - Runner in the High
                            • 自作言語の紹介と関数型言語の実装方法の検討

                              はじめに 私が個人で昨年の 6 月ごろから開発している関数型プログラミング言語を紹介する。言語の名前は「Plato」である。 この言語は昨年の U22 プログラミングコンテスト最終発表会でも発表した。コンテスト後、コンパイラの構成と実装に関して調査し直して、コードを一から書き直した。コンパイラは Haskell で書かれているため、本稿の内容も Haskell の知識をベースとしている。また、型理論の知識もある程度求められる。ただ、大雑把に書いているため、大雑把に読めばよく、このブログの読解に正確さは必要無い。 このブログでは、まず Plato のチュートリアルを示し、実際に何ができるのかを説明する。次に型検査や中間言語の仕様などコンパイラの実装手法を大まかに説明する。最後に今後実現したい機能などについて述べる。理論的に面白いものや有用な機能については、後日それ専用の記事を書く予定。 チュ

                                自作言語の紹介と関数型言語の実装方法の検討
                              • NixによるHaskell開発環境の構築 - syocy’s diary

                                Nix package manager によって Haskell のスクリプティングおよびパッケージ開発の環境構築をしていく。 こいついつも環境構築してんな ここで触れられないこと Nix スクリプティング ちゃんとした開発 haskell-language-server の導入 パッケージの設定 高度な依存関係オーバーライド トラブルシューティング nix-shell の立ち上がりが遅い cabal run で cabal 自体の出力を無視したい Mac で nix-env -i が失敗する Mac で channel が消滅する こいついつも環境構築してんな 環境構築以外はブログに書くような一般性のあることをやっていないということで……。 ここで触れられないこと cabal.project によるマルチプロジェクトを扱う方法 外部の nix store を使うこと nix の新しいコマ

                                  NixによるHaskell開発環境の構築 - syocy’s diary
                                • 2022年、Rustの未来を探る旅 (1) はじめに

                                  ※大風呂敷を広げてやる気だけ表明する記事です。まだ中身はない。 はじめに Rustは2009年頃に誕生し、2015年に正式リリースされたプログラミング言語です。その革新性はおよそ以下のように集約されます。 shared XOR mutable とそれに付随する発明 (所有権、ライフタイム) により、ミュータブル参照が正しく扱えるようになった (責任分界点が明確になった) こと。 上記のアイデアにより、高パフォーマンス・低フットプリントが求められるアプリケーションやOS・GC・アロケーターのない環境で動く必要のあるアプリケーションをより安全に書けるようになったこと。 プログラマーが安全に・快適にプログラムを書くための既知の優れた道具 (パッケージマネージャーなど) を計画的に取り入れ、伝統的なプログラミング言語が抱えがちな問題を広範に解決したこと。 これらの革新性から、これまでC/C++が担

                                    2022年、Rustの未来を探る旅 (1) はじめに
                                  • 日々の作業をもっとサッとこなしたい!「ワンライナー勉強会」を開催しました - Mobile Factory Tech Blog

                                    4月入社の新人エンジニアのxztaityozxです。趣味はdotfilesいじりです 皆さんは日々の開発でふと、調査やデータの加工が必要となったことはありませんか?私はたくさんあります。 ではそういった時、どうやって解決していますか?私はいくつかのCLIツールを組み合わせることで解決しています。 例えば、/etc/services からtcpなサービスの名前を取り出すときは以下のようにします $ cat /etc/services | grep -P "\d+/tcp" | awk '{print $1}' こういったテクニックを「ワンライナー」と呼ぶことにし、日常のちょっとした調査やデータ加工をサッと出来るようにコマンドラインと触れ合っていくことを目的とした勉強会「ワンライナー勉強会」を開催しました。 この記事では、「ワンライナー勉強会」の進め方や問題、解答例を紹介します。 進め方 社内

                                      日々の作業をもっとサッとこなしたい!「ワンライナー勉強会」を開催しました - Mobile Factory Tech Blog
                                    • 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
                                      • hyper-ts で type-safe & stateless なExpressアプリケーションを構築する

                                        tl; dr TypeScriptとExpressを使ってアプリケーションを開発するにあたって、以下の課題がある。 現状、 @types/express における型定義は厳密でない リクエストハンドラの中でごちゃごちゃとやってしまい、ステートフルになりがち こうした課題に対して、gcanti/hyper-ts が有効である。 1. @types/express における型定義はstrictでない 例として、Application インターフェースの render メソッドの型定義を見てみる。 render(view: string, options?: object, callback?: (err: Error, html: string) => void): void; この型定義は厳密さに欠ける。まず、第二引数のoptionsの型は objectである。(cookieメソッドのオプシ

                                          hyper-ts で type-safe & stateless なExpressアプリケーションを構築する
                                        • TypeScript 4.9からはsatisfies演算子でパターンの網羅性をESLintと共存しつつ簡単にチェックできる

                                          TypeScript 4.9からはsatisfies演算子でパターンの網羅性をESLintと共存しつつ簡単にチェックできる export const stages = ["deve", "stag", "prod"] as const; /** * 開発用、本番用などを分けるステージ * {@link https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Stage.html} は一切関係がない */ export type Stage = typeof stages[number]; こうするとstagesを反復することで簡単に全てのステージに対してスタックを作ることが可能ですし、その名前にStageをstringとして埋め込んで区別することが可能です。 引数ではstringではなくStageを受け取ってstage =

                                            TypeScript 4.9からはsatisfies演算子でパターンの網羅性をESLintと共存しつつ簡単にチェックできる
                                          • プロパティベーステスト (Property Based Testing) を Ruby で書き雰囲気を味わう - DIGGLE開発者ブログ

                                            2023 年 10 月 30 日に『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』(以下 実践プロパティベーステスト本)という本が出版されました。 プロパティベーステストというのは、テストの一手法なのですが、これまでとは違う範囲をカバーするテストです。 今回はそれを Ruby に適用するとどうなるか検証、また似ている既知との概念と対比して理解を深めました。 これは Ruby Advent Calendar 2023 15 日目の記事です。 プロパティベーステストとはどのような形式か 既知の概念との対比 普段書いているテストと、プロパティベーステスト データ(テーブル)駆動テストと、プロパティベーステスト ファジングと、プロパティベーステスト 型と、プロパティベーステスト まとめ 実践プロパティベーステスト本は 2023 年 12 月現在、テストの一手

                                              プロパティベーステスト (Property Based Testing) を Ruby で書き雰囲気を味わう - DIGGLE開発者ブログ
                                            • イミュータブルでゆこうに参加してきた - 天の月

                                              modeling-how-to-learn.connpass.com 今日はこちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。 会で話されていたこと イベント資料 イミュータブルデータモデルの極意~川島義隆さん~ 川島さんの問題意識~Division into cases~ Dataの場合分け EventとResourceの関係性 EventとResourceのサブタイプ Resource同士の関連付けをする際のコツ 記録として残すEvent, 残さないEvent ドメイン駆動設計とイミュータブルデータモデルの素敵な関係~増田亨さん~ イミュータブルについての厳格性 必ずイミュータブルにする際の設計パターン 増田さんがイミュータブルに拘る理由 ドメインイベントの観点から再考するソフトウェア設計~かとじゅんさん~ ドメインイベントとは ドメインイベントはなぜ有用か

                                                イミュータブルでゆこうに参加してきた - 天の月
                                              • unsafePerformIOではじめる愉快なHaskellプログラミング

                                                Haskellは「入出力のためにIOモナドを使う必要があるので難しい」というイメージを持たれがちです[要出典]。この記事ではそのイメージに異を唱えることを目指します。すなわち、モナドを使わずに入出力を含むプログラミングをやってみます。 と言っても、Haskell標準の入出力関数には IO 型がついていることに変わりはありません。ですが、 unsafePerformIO という魔法の関数を使うと、IO 型を外して値を取り出すことができるのです。この記事ではこれを最大限活用します。 module System.IO.Unsafe where -- 魔法の関数 unsafePerformIO :: IO a -> a

                                                  unsafePerformIOではじめる愉快なHaskellプログラミング
                                                • LLVM の Kaleidoscope を育てながら作る - Qiita

                                                  この記事は言語実装 Advent Calendar 2020 3日目の記事です。前回は sisshiki1969 さんの「ruruby: RustでつくっているRuby」、次回は yharaさんの「Shiika進捗」です。 趣旨 LLVM を使って小さな言語を実装してみます。 方針としては、最小限の機能の言語から出発して動くものを少しづつ大きくしていきます。ゴールは LLVM 公式のチュートリアルである Kaleidoscope の序盤相当の部分で、次のプログラムが動くことを目標とします。 def fib(n) if n < 3 then 1 else fib(n-1) + fib(n-2); fib(10) #=> 55 想定する読者 LLVM や LLVM IR がどういうものか何となく知っている Haskell がなんとなく分かる ただしコードにはコメントを入れて、LLVM IR や

                                                    LLVM の Kaleidoscope を育てながら作る - Qiita
                                                  • Apple Silicon MacでのHaskell/GHCの現状・2022年3月編 - Qiita

                                                    この記事は Haskell Advent Calendar 2021 の21日目の記事です。 2020年に発表されたApple Silicon (Arm) Macは、2021年に新チップ “M1 Pro/Max” が、2022年には新チップ “M1 Ultra” が登場し、ますます勢いを増しています。Mac使いの皆さんはもう手にされましたか? 新しいアーキテクチャーにはハードウェアだけではなくソフトウェアの対応も重要です。この記事では、2022年3月時点のApple Silicon MacへのHaskellエコシステムの対応状況をまとめます。 この記事では、なるべくRosetta 2を使わず、Armネイティブに動作する環境を構築することを目指します。 インストールにどれを使うか UnixでHaskell環境を構築する場合、 パッケージマネージャーを使う GHCupを使う Stackを使う

                                                      Apple Silicon MacでのHaskell/GHCの現状・2022年3月編 - Qiita
                                                    • Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か

                                                      Hypothesisとは何か、プロパティベーステストとは何か Hypothesisは、Python向けのプロパティベーステストのライブラリである。 プロパティベーステストは、生成された多数の入力データに対してプロパティ(性質)が満たされるかどうかをテストする手法である。 HaskellのQuickCheckライブラリが初出で、現在は各プログラミング言語に移植されている。 従来のユニットテストは、ある程度固定したテストデータを指定してテストを行っていた。 その際、境界値分析などで妥当なパラメータを決定していた。 しかし、境界値分析が必ず通用するとは限らないし、人間が行う以上、ミスも発生する。 プロパティベーステストはデータを固定する代わりにそのデータが満たすプロパティを指定してテストを行う。 実際のテストケースはHypothesisがプロパティを満たすパラメータを決めて生成してくれる。 人力

                                                        Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か
                                                      • How terminal works. Part 1: Xterm, user input

                                                        Motivation Introduction User input strace Printing non-printable stty raw -echo -isig UTF-8 Conclusion Motivation This blog series explains how modern terminals and command-line tools work. The primary goal here is to learn by experimenting. I’ll provide Linux tools to debug every component mentioned in the discussion. Our focus is to discover how things work. For the explanation of why things wor

                                                        • 文書作成だけじゃない--アプリケーション開発に使えるExcelとPowerPoint - CNET Japan

                                                          「Microsoft Office」は、開発ツールであるとは思えないかもしれないが、これまで長きにわたり、多くの開発ツールチェーンで中心的な位置を占めてきた。特によく使われる2つのアプリも、あまり想像がつかないだろうが、「Excel」と「PowerPoint」だ。 いずれも開発においてさまざまな役割があり、正式なアプリケーション開発プログラムの一部として、またアプリを簡単に作成し、ユーザー自身のプログラミングスキルを使って緊急のビジネスニーズを解決する手段として利用されている。 Excel:秘密のプログラミング環境 Excelは非常に興味深い開発ツールの例だ。見慣れたスプレッドシートの裏側には一連のプログラミング言語があり、非常に高度な方法で使用することができる。 Microsoft Research(MSR)のプリンシパルリサーチャーのSimon Peyton Jones氏が指摘するよう

                                                            文書作成だけじゃない--アプリケーション開発に使えるExcelとPowerPoint - CNET Japan
                                                          • FMA (fused multiply-add) の話 - Qiita

                                                            この記事では融合積和 (fused multiply-add; 以下もっぱら FMA) について扱います。 この記事は元々「その辺で提供されている fma 関数の実装が正しいかチェックしてみた」記事だったのがだんだん守備範囲を広げていったものなので、FMAを単に使うだけではなく、実装する側の視点が多く含まれています。 筆者が実装したHaskell向けのFMA関数はこちらにあります: haskell-floating-point/FMA.hs at master · minoki/haskell-floating-point FMAとは、FMAを含む規格 融合積和(fused multiply-add; FMA)とは、積と和が合体した演算です。数式で書けば $xy+z$ です。この際、丸め(浮動小数点数で正確に表せない数をそれに近い浮動小数点数で代用すること)を1回しか行わないため、「積→和

                                                              FMA (fused multiply-add) の話 - Qiita
                                                            • Programming languages endorsed for server-side use at Meta

                                                              Supporting a programming language at Meta is a very careful and deliberate decision. We’re sharing our internal programming language guidance that helps our engineers and developers choose the best language for their projects. Rust is the latest addition to Meta’s list of supported server-side languages. At Meta, we use many different programming languages for a wide variety of platforms and use c

                                                                Programming languages endorsed for server-side use at Meta
                                                              • Parsing SQL - Strumenta

                                                                The tomassetti.me website has changed: it is now part of strumenta.com. You will continue to find all the news with the usual quality, but in a new layout. The code for this tutorial is on GitHub: parsing-sql SQL is a language to handle data in a relational database. If you worked with data you have probably worked with SQL. In this article we will talk about parsing SQL. It is in the same league

                                                                  Parsing SQL - Strumenta
                                                                • Tree-sitter|Introduction

                                                                  ☰ Introduction Tree-sitter is a parser generator tool and an incremental parsing library. It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited. Tree-sitter aims to be: General enough to parse any programming language Fast enough to parse on every keystroke in a text editor Robust enough to provide useful results even in the prese

                                                                  • Haskell For a New Decade

                                                                    Haskell Problems For a New Decade It has been a decade since I started writing Haskell, and I look back on all the projects that I cut my teeth on back in the early part of this decade and realise how far the language and tooling have come. Back then Haskell was really barely usable outside of the few people who would “go dark” for months to learn it or those lucky enough to study under researcher

                                                                    • Announcing F# 8 - .NET Blog

                                                                      F# 8 is released as part of .NET 8. It is included with new updates of Visual Studio 2022 and .NET 8 SDK. Download the latest version of .NET 8 Install Visual Studio 2022 F# 8 brings in many features to make F# programs simpler, more uniform and more performant. Read more about language changes, new diagnostics, quality of life improvements, performance boosts for project compilation and upgrades

                                                                        Announcing F# 8 - .NET Blog
                                                                      • 5 Programming Languages That Are Probably Doomed

                                                                        5 Programming Languages That Are Probably Doomed by Nick Kolakowski Jul 29, 2019 5 min read Not all programming languages endure forever. In fact, even the most popular ones inevitably crumble away, as new generations of developers embrace other languages and frameworks they find easier to work with. In order to determine which programming languages are likely doomed in the medium- to long-term, w

                                                                          5 Programming Languages That Are Probably Doomed
                                                                        • Haskellの例外処理事情 - Qiita

                                                                          Haskellを使うたびに例外について調べ直す癖がついているので、諸々をまとめておく。 TL;DR 部分関数を使うな。 失敗可能性はMaybe?Either?IO? -> 迷ったらMonadThrowを使え。 予めエラー型を統一しないと例外処理クソだるいんだけど -> SomeExceptionを使え。 ライブラリどれ使えばいいの? -> safe-exceptionsを使え。 部分関数を使うな 死の化身。部分関数自体を避けるしか方法はない。用意された部分関数を使う場合は必ずラップすること。 パターンマッチの失敗やundefined, error等のピュアな文脈での例外は、IOモナドの中でのみキャッチすることができる。しかし、ピュアな文脈で解決できる問題を神モナドで解決するのはあまり嬉しくない。ピュアなものはピュアなものに、神のものは神に返すべきである。 もし失敗をどの型で表すのか迷ったら

                                                                            Haskellの例外処理事情 - Qiita
                                                                          • Temporal Dead Zone と採用されなかった他の候補について

                                                                            Temporal Dead Zone とは ECMAScript 2015で採用された let/const のスコーピングの仕様をTemporal Dead Zoneと呼びます。 const x = "outer"; { const f = () => x; // console.log(f()); // => Error const x = "inner"; console.log(f()); // => "inner" } 4つの方式 Temporal Dead Zone という名前は、ブロックスコープ変数の挙動を決める際の4つの候補の名前に由来しているようです。 これはECMAScript 4が放棄されて間もない2008年10月のes-discussのログ[1]に言及があります。 A1. Lexical dead zone. References textually prior to

                                                                              Temporal Dead Zone と採用されなかった他の候補について
                                                                            • プログラング言語Idrisに入門させたい(v0.9)

                                                                              これは筆者(κeen)がIdris Advent Calendar 2020に投稿した内容を土台とし、一冊の本になるように増補改訂を行なったものです。 本書では依存型のあるHaskellことIdrisについて紹介します。Idrisは純粋関数型言語であり構文もHaskellに似ていますが、大きな特徴として依存型があることが挙げられます。依存型があるとリストの長さを指定したり整数同士の割り算でゼロ除算が起きないことを保証したり、究極的には数学の証明をしたりもできます。また、依存型以外にもインタラクティブな開発環境を使った型駆動開発であったりElaborator Reflactionによるメタプログラミングだったりと注目に値する言語機能も揃っています。 総じてIdrisは非常に尖った言語です。作者がプログラミング言語理論の研究者ということもあり、かなり攻めた言語機能が入っています。依存型を搭載し

                                                                                プログラング言語Idrisに入門させたい(v0.9)
                                                                              • OKRからエンジニアのキャリアまで。プログラミングの楽しみを求めて | DevLounge.jp Session A-2 レポート | Wantedly, Inc.

                                                                                エンジニアリング界をリードする著名人が「いま話を聞きたい」開発者を直接指名し、日頃なかなか聞けない開発トピックについて語り尽くすオンライントークセッション「DevLounge.jp」。 Session A-2では、グローバルなクラウドプラットフォームのデベロッパーアドボケイトとして活躍する山口 能迪氏が、日頃から飲みながら雑多な話をする相手だというヘイ株式会社CTO、藤村大介氏を招いて、「技術に寄りすぎない話」を展開。山口氏が最近気になっているというOKR(目標管理手法)の話から始まり、やがて藤村氏のフリーランスから社員となってCTOという立場に就いた話、哲学とソフトウェア開発の関連性の話まで、話題は尽きず。ここではそんなトークセッションの一部をダイジェストでお届けします。 山口 能迪グローバルなクラウドプラットフォームのデベロッパーアドボケイトとして、ウェブからネイティブ、フロントエンド

                                                                                  OKRからエンジニアのキャリアまで。プログラミングの楽しみを求めて | DevLounge.jp Session A-2 レポート | Wantedly, Inc.
                                                                                • みんながいるから続けられる。続けられるから成長できる。プログラミング力を磨く部活動のご紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                                                  開発部門(基盤本部)でエンジニア育成を担当している高玉です。 BIGLOBEには登山部、麻雀部、ツーリングクラブなど様々な部活があります。今日はインドア派の部活、プロコン部についてご紹介します。 プロコン部とは ゆるくて多様なプロコン部 みんながいるから続けられる みんなのコードをチラ見せ コードゴルフ感ただようPython v.s. Rust ワンライナー F# JavaScriptで多倍長整数を扱う、だと!? まとめ プロコン部とは プロコンってご存知ですか? ここでいうプロコンは、ゲーム機用のProコントローラーでも、良い点(Pros)・悪い点(Cons)を列挙するのでもありません。「競技プログラミングコンテスト」の略です。 プログラミングコンテストとは、プログラミングの技術を競い合うイベントです。参加者にお題が出題されるので、そのお題を解くプログラムを制限時間内に提出します。 プロ

                                                                                    みんながいるから続けられる。続けられるから成長できる。プログラミング力を磨く部活動のご紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」