並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 1312件

新着順 人気順

haskellの検索結果201 - 240 件 / 1312件

  • QUICをゆっくり解説(17):QUICビットとトランスポート・パラメータ | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 お久しぶりです。一家の引っ越しでバタバタしておりました。ようやく落ち着いてきましたので、「硬直化」をテーマとしてQUICに関して3つほど記事を書いてみようと思います。 硬直化 硬直化とは、中間装置が想定外の動作をすることによって、新しい機能の普及が困難になることです。硬直化の例としては、TCP Fast Openが完全に普及できないことが挙げられます。 TCPでは、コネクションを確立するために、いわゆる3WAYハンドシェイクが実行されます。通常は、クライアントがSYNパケットを送信し、サーバがSYN/ACKパケットを返し、その後クライアントがACKを返す際に初めてデータを送信できます。 もし最初のSYNパケットにデータを乗せることがで

      QUICをゆっくり解説(17):QUICビットとトランスポート・パラメータ | IIJ Engineers Blog
    • Elm at Rakuten | Rakuten Engineering Blog

      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 Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application w

        Elm at Rakuten | Rakuten Engineering Blog
      • 挿入ソートと選択ソートは双対 - Qiita

        先日 Gotanda.hs #1 @HERP というイベントがあって、そこでRecursion Schemesで考える並べ替えアルゴリズムというタイトルでA Duality of Sortsという論文の話をLTしたんですが、この記事ではそこで話せなかった論文の後半で解説されている挿入ソートと選択ソートの双対性について書いていきたいと思っています。 ソートアルゴリズムの復習 まずは主役の二人である挿入ソートと選択ソートについて見ていきましょう。 挿入ソートは与えられたリストの先頭から要素を取り出し、これまでに構築したソート済みのリストに挿入していくという処理を繰り返すことでソートを実現するアルゴリズムです。 出典: Insertion sort - Wikipedia これをHaskellで実装すると以下のようになります。 insertSort :: [Int] -> [Int] inser

          挿入ソートと選択ソートは双対 - Qiita
        • QUICをゆっくり解説(14):輻輳制御 | IIJ Engineers Blog

          Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 「フロー制御」の回で説明したように、輻輳制御とは途中のネットワークが溢れないようにするための仕組みです。QUICは、正確なRTT計測や、前回説明した簡潔なロス検知の機能を提供しています。このため輻輳制御としては、パケット欠落や遅延といったシグナルを使うアルゴリズムが利用可能です。RFC9002では、デフォルトの輻輳制御アルゴリズムとしてNewRenoを採用しています。 1990年に現れたRenoは、1995年に出されたアイディアに基づいて改良されNewRenoとなりました。2008年に提案されたCUBICや、2016年に現れたBBRに比べると、NewRenoは古い輻輳制御アルゴリズムです。QUICのデフォルトの輻輳制御に古いNewRe

            QUICをゆっくり解説(14):輻輳制御 | IIJ Engineers Blog
          • 型安全で高速な連鎖行列積の計算

            この記事は Haskell Advent Calendar 2021 の22日目の記事です。 次のような3つの行列の積を考えてみましょう。 ABC = \begin{pmatrix} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \\ a_{20} & a_{21} & a_{22} \\ a_{30} & a_{31} & a_{32} \\ \end{pmatrix} \begin{pmatrix} b_{00} & b_{01} \\ b_{10} & b_{11} \\ b_{20} & b_{21} \\ \end{pmatrix} \begin{pmatrix} c_{00} & c_{01} & c_{02} & c_{03} & c_{04} \\ c_{10} & c_{11} & c_{12} & c_{13}

              型安全で高速な連鎖行列積の計算
            • HaskellとElmの会社をつぶしてUXハッカーになった話 - Qiita

              はじめに 去年の9月にこれまで4年ほど経営していた会社を解散しました。 「会社をつぶす」と聞くと、なんだか良くないことに聞こえますが、実はこの解散は前向きな理由で決断したものです。 解散理由が珍しいだけでなく、会社を作った経緯も、経営方針や採用技術についても、なかなかほかでは見られないものだったため、興味を持ってくださる方も多く、記事にして残すことにしました。 これから事業を起こそうとされる方、なかなか自分にあった活躍のしかたが見つからない方、世の中のあり方に思うところがある方にとって、多少でもお役に立てるものになれば幸いです。 いまは何をしているのか 法人をたたんだ現在は「UXハッカー」として生きています。 これは、UX = User eXperience (ユーザーの体験) の概念を独自に拡張し、世の中のあらゆるUXを改善するお仕事です。 UXといえば、最近「UXデザイナー」という職種

                HaskellとElmの会社をつぶしてUXハッカーになった話 - Qiita
              • 「アルゴ式」をHaskellで学ぶための準備

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

                  「アルゴ式」をHaskellで学ぶための準備
                • 「圏論とプログラミング」発表スライドメモ - Qiita

                  この記事は、先日の 2020年01月25日に慶応大学で開催されたシンポジウム「圏論的世界像からはじまる複合知の展望」の登壇資料を文字起こししたものです。 Slide: 圏論とプログラミング / Category Theory and Programming - Speaker Deck Video: 圏論とプログラミング / 稲見泰宏 - YouTube 皆さん、こんにちは。稲見 泰宏と申します。 本日は、この圏論シンポジウムという貴重な場でお話しさせていただくことをとても光栄に思います。 私の方からは、圏論とプログラミングに絡めた話について発表します。 それでは、どうぞよろしくお願いします。 まず簡単に自己紹介します。稲見泰宏といいます。 現在は、フリーランスのiOSアプリ開発者として活動しております。 ここに書いてあるのは、私の過去10年間のプログラミング経歴ですが、 PHPとJava

                    「圏論とプログラミング」発表スライドメモ - Qiita
                  • オードリー・タンが小2の時に自ら辿り着いた「いじめへの対処法」が超合理的…「小2で理解できるの」など

                    kingstone @king1234stone 他の SNS では「金愚酢豚」「king0000stone」「king1234stone」「kingstone」なんかの名前でウロウロしてます。 1つに統一しておきたかったんだけどね、できなかった・・・ https://t.co/moBE0fa7SQ kingstone @king1234stone オードリー・タンさん、小学校2年生の時に虐められ、その構造を理解するため、ピアジェやモンテッソーリの本を読み、いじめは相手に自信が無いからだと結論づけ、他人を変えるのは無理と考え転校したと・・・すげ・・・ #NHK 2021-03-23 20:25:16 リンク Wikipedia 唐鳳 唐 鳳 (とう ほう、タン・フォン、オードリー・タン、英: Audrey Tang、1981年4月18日 - ) は、中華民国 (台湾) の政治家、プログラマ

                      オードリー・タンが小2の時に自ら辿り着いた「いじめへの対処法」が超合理的…「小2で理解できるの」など
                    • AtCoder ガチ言語 Haskell 🔥

                      Haskell で AtCoder に入門しましょう

                        AtCoder ガチ言語 Haskell 🔥
                      • Rubyでプログラミングの楽しさを知ろう––言語の特徴と魅力について Part1

                        2019年3月2日、TECH PLAY SHIBUYAにて「TokyoGirls.rb Meetup vol.1」が開催されました。女性でも参加しやすい、Ruby勉強会を目指して開催された本イベント。4人のエンジニアが登壇し、Rubyにまつわることをはじめとしたさまざまな技術の話題を語りました。プレゼンテーション「Rubyでプログラミングの楽しさを知ろう! 」に登壇したのは、よう(@youchan)氏。講演資料はこちら Rubyでプログラミングの楽しさを知ろう! よう氏(以下、よう):自己紹介します。「よう」といいます。「youchan」というIDでTwitterやGitHubをやっているので、見てください。 Rubyistで、千葉在住です。今活動している千葉のRubyコミュニティがないので、作りたいなと思っています。 あと、大事なことを忘れていました。株式会社レトリバとい

                          Rubyでプログラミングの楽しさを知ろう––言語の特徴と魅力について Part1
                        • Async Rust Is A Bad Language

                          But to get at whatever the hell I mean by that, we need to talk about why async Rust exists in the first place. Let’s talk about: Modern Concurrency: They’re Green, They’re Mean, & They Ate My Machine Suppose we want our code to go fast. We have two big problems to solve: We want to use the whole computer. Code runs on CPUs, and in 2023, even my phone has eight of the damn things. If I want to use

                            Async Rust Is A Bad Language
                          • 技術力を底上げする、Sansanの社内勉強会補助制度 - Sansan Tech Blog

                            Sansan事業部プロダクト開発部の基盤チームに所属する佐藤です。Sansanでは社員が自発的に開催する社内勉強会で会社からの支援を受けることができ、月に50種類以上の勉強会が開催されています*1。各勉強会は単発のものもありますが、週に1回、1~2ヶ月継続して開催されているものが多く、中には1年半以上続いている勉強会もあります。 今回は、社内勉強会を支える制度「Geek Seek Workshop」について紹介しつつ、社内で行われている勉強会から分野や目的の異なるものをピックアップして紹介し、Sansan社内の勉強会の雰囲気や参加によるメリットを参加者の立場から多面的に伝えたいと思います。人事制度に携わる人間ではありませんが、制度を用いた社内の技術力向上のアイデアの種になれれば嬉しいです。 Geek Seek Workshop 1人あたり1000円の補助が出る 申請のハードルが低いから開催

                              技術力を底上げする、Sansanの社内勉強会補助制度 - Sansan Tech Blog
                            • OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog

                              はてなで働くエンジニアにアンケートシリーズ第13回は、ブックマークチームのWebアプリケーションエンジニア、id:itchynyに話を聞きました。 はてなidはかぶらないように適当に付けた Haskellが得意な自分ならScalaも書けるだろうと思って チーム間で協力しながら新しいAPIの仕様を策定 TLとして、チーム横断での依頼の窓口にも 夕方から深夜にかけて頭が冴える より戦略的にOSSへ貢献する体制作りをしたい スプリントごとに常に方法を改善 実装力を活かして良いシステム構成にできた時に手応えが 意思決定の過程を書き残すのは重要なこと 意欲がある人はいくらでも学べる会社 はてなidはかぶらないように適当に付けた ── Q1. はてなidとその由来を教えてください id:itchyny (いちにぃ)です。本名ばれせず、かつかぶらないよう適当に付けたので、由来はありません。 Haskel

                                OSSへの貢献をさらに良い形にしたい | はてなで働く itchyny にアンケート [#13] - Hatena Developer Blog
                              • 全ての開発者が学ぶべき5つの言語 - Qiita

                                「どの言語を学ぶべきか」という議論はエンジニア向け記事の定番ネタですが、HackerNoonに投稿された5 Programming Languages Every Master Developer Should Learnという記事がなかなか興味深かったので翻訳してみました。 (2018/11/04追記) こちらの記事に関する「別視点からの意見」として下記のような記事を追加いたしました。宜しければこちらも併せてご参照ください。 Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由 はじめに 「プログラマーは新しい言語を毎年1つは習得するべきだ」という趣旨の文章をどこかで読みました。(多分CODE COMPLETEだったと思いますが) もしそれが難しくても、キャリアの中で最低限この後に紹介する5つの言語に通じておくことをお薦めします。 あらゆる会社は、多言語を

                                  全ての開発者が学ぶべき5つの言語 - Qiita
                                • 仕事で使うHaskell

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

                                    仕事で使うHaskell
                                  • 「圏論とプログラミング」発表スライドメモ - Qiita

                                    この記事は、先日の 2020年01月25日に慶応大学で開催されたシンポジウム「圏論的世界像からはじまる複合知の展望」の登壇資料を文字起こししたものです。 Slide: 圏論とプログラミング / Category Theory and Programming - Speaker Deck Video: 圏論とプログラミング / 稲見泰宏 - YouTube 皆さん、こんにちは。稲見 泰宏と申します。 本日は、この圏論シンポジウムという貴重な場でお話しさせていただくことをとても光栄に思います。 私の方からは、圏論とプログラミングに絡めた話について発表します。 それでは、どうぞよろしくお願いします。 まず簡単に自己紹介します。稲見泰宏といいます。 現在は、フリーランスのiOSアプリ開発者として活動しております。 ここに書いてあるのは、私の過去10年間のプログラミング経歴ですが、 PHPとJava

                                      「圏論とプログラミング」発表スライドメモ - Qiita
                                    • QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog

                                      Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 前回は、QUICパケットとフレームの構造について説明しました。準備が整いましたので、今回はコネクションの確立時に実行されるハンドシェイクについて説明します。 トランスポート層を実装する場合、コネクションを確立する部分を作らないと何も通信できませんが、QUICはこのハンドシェイクの実装が結構難しく、実装者泣かせの仕様となっています。 TLS 1.3のハンドシェイク まずTCP上のTLS 1.3のハンドシェイクを以下の図を使って説明します。 最初にTCPのコネクションを張る必要があるので、お馴染みの TCP 3-way ハンドシェイクから始まります。 次にクライアントは、(楕円曲線)Diffie-Hellmanの系統を用いて、使い捨ての公

                                        QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog
                                      • Pythonのように書けてGPU上で並列処理できる新プログラミング言語「Bend」、2D画像→3Dを高精度生成するGoogle「CAT3D」など重要論文5本を解説(生成AIウィークリー) | テクノエッジ TechnoEdge

                                        2014年から先端テクノロジーの研究を論文単位で記事にして紹介しているWebメディアのSeamless(シームレス)を運営し、執筆しています。 1週間分の生成AI関連論文の中から重要なものをピックアップし、解説をする連載です。第47回目は、生成AI最新論文の概要5つを紹介します。 生成AI論文ピックアップ GPU上でネイティブ動作する並列処理が可能な新プログラミング言語「Bend」とランタイムシステム「HVM2」 2D画像から3Dコンテンツを生成する「CAT3D」をGoogleが開発 大規模言語モデルは追加学習や新知識で幻覚生成が増加。Googleなどが調査 画像とテキストを使った長文生成が得意なAIモデル「Chameleon」をMetaが開発 Transformerを超える「Mamba」は視覚認識タスクに必要か? 開発した「MambaOut」モデルで検証 GPU上でネイティブ動作する並列

                                          Pythonのように書けてGPU上で並列処理できる新プログラミング言語「Bend」、2D画像→3Dを高精度生成するGoogle「CAT3D」など重要論文5本を解説(生成AIウィークリー) | テクノエッジ TechnoEdge
                                        • アメリカ人組織はプログラミングコードを守ってるから強い説 - teruyastarはかく語りき

                                          anond.hatelabo.jp この増田に対する俺なりの見解、、、というかまとめない、いつもの落書き。 日本の政治、企業、学校てのはC++で役職から縦に多重継承を繰り返して、人間ひとりのクラスが1万行ぐらいある万能で最適化された神クラスになってる。 んで、クラスの中の状態はグローバル変数で共有してるのでマネージャークラスをはじめ、依存してる全クラスがOKを出さないとグリーンにならずそもそも動けない。しかも、マネージャークラスがなぜか複数あってお互い勝手にグローバル変数を書き換える。だからあっちこっちで言うことや指示が違う。 さらに、マネージャークラス達に現場の処理が書かれてて、プレイングマネージャー化してる。Tell, Don't Ask!! お前はマネージャーだ!求めるな!命じよ! メリケン人は状態を持たない関数だ。 すごいHaskellたのしく学ぼう! 作者:Miran Lipov

                                            アメリカ人組織はプログラミングコードを守ってるから強い説 - teruyastarはかく語りき
                                          • Haskellでの型レベルプログラミング

                                            Haskellでの型レベルプログラミングの解説書です。

                                              Haskellでの型レベルプログラミング
                                            • 記事を書くときの自分ルール

                                              この記事は アウトプットはいいぞカレンダー 2022 の 15 日の記事です。 はじめに 記事を書くのは結構好きで、Qiita や Zenn にごそごそと書き続けてたら計 100 記事をとっくに超えてました。今知りました。 「はえ〜そんなにあったのか」って気持ちです。 ちなみに 7 年ほど前の初投稿は、「こういうときはこうすると楽だぞ」ってドヤ顔でコード書いたやつで、数行しか書いてないくせにバグってました。 公開後に即コメント通知が来て、恐る恐る見たら何人かバグ指摘をしてくれてました、懐かしい。 「いんたーねっとこわい、けどやさしい」って思った思い出の記事です。 それから時は経ちある程度は書き慣れて、ここ数年はそれなりに一貫した自分ルールみたいなものができてきています。 気にすることが定まっていると書くとき楽なので、ちょっと整理して晒してみたいと思います。 ネタにしつつあわよくば自分ルール

                                                記事を書くときの自分ルール
                                              • Levelsモナドを使った幅優先探索の仕組み

                                                Haskellは関数型プログラミング言語と呼ばれますが、関数だけでなく型も重要な役割を担っています。アルゴリズムを考える時、手続きの最適化だけでなく、正しいデータ型を選択することがシンプルなアルゴリズムを導き、実装をコンパクトにできるというのはよくある話です。今回は非常に単純な型でありながら幅優先探索というアルゴリズムのエッセンスを詰め込んだ Levelsというデータ型 について紹介したいと思います。 ピタゴラス数を列挙する ピタゴラス数とはピタゴラスの定理における関係式 a^2 + b^2 = c^2 を満たす自然数の三つ組です。 Haskellのリストは遅延評価なので 全ての自然数の三つ組を列挙する 列挙した自然数の中から関係式を満たすものだけ抽出する という手順でピタゴラス数を列挙することを考えてみましょう。 実際この方法は有限な探索範囲ではうまく機能します。 pyth :: [(I

                                                  Levelsモナドを使った幅優先探索の仕組み
                                                • Haskellの子供たち

                                                  Owenのブログより。 もし、私が4年前にタイムスリップして、昔の自分にHaskellが輝きを失い始めていると言ったら、私はそれを信じないでしょう。私はHaskellで育ち、カテゴリ理論への欲求はHaskellによって刺激され、私の最大のプログラミング・プロジェクトはHaskellであり、Haskellを使った会社で働くのが夢でした。 しかし今では、以前ほどHaskellに興奮していないことに気が付きました。何が変わったのでしょうか? いくつか要因があると思います。主な要因の1つは、Haskellが本当に得意としているプログラミングの種類だと思います。つまり、抽象的で正しいインタフェースを作ることは、私にとって興味のあるタイプのプログラミングではないと言うことです。キャリアとしてソフトウェアに携わりたいと思ったとき、自分を繰り返さないようにする素晴らしい機能を持った言語はとても役に立ちまし

                                                  • 『形式意味論入門』を 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
                                                    • neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する

                                                      Result 型 (類似するものとして Either Monad の方が有名かもしれません) を導入する場合、アプリケーション全体の設計を変えたり、全箇所を書き換える必要はありません。 neverthrow は部分的に使用でき影響範囲も閉じるので、局所的に使い始めることができます。 (Rust のような) Result 型 とは ざっくり言うと関数の処理の結果と成否を 1 つの型 Result<T, E> で表したものです。(T は期待する結果の型、 E はエラーを表現する型) 筆者は詳しくはないのですが、 Haskell 等にある Either<L, R> とは厳密には違うようです(Either は両方の値が使用可能であることを前提としている?) 参考: Rust ではなぜ、Either 型ではなく Result 型を採用しているのか neverthrow とは TypeScript で

                                                        neverthrow で局所的に Result 型を使い、 try-catch より安全に記述する
                                                      • 執筆中:「Haskellでの型レベルプログラミング」 | 雑記帳

                                                        最近、「Haskellでの型レベルプログラミング」という「本」を執筆している。まだ完成ではないが、以下のリンクから読める: Haskellでの型レベルプログラミング なぜHaskellか 最近いろんな言語が出てきている中で、Haskellの強みとは何だろうか。人によって答えは色々あるだろうが、筆者にとってHaskellの魅力的な側面は強力な型システムである。どのくらい強力かというと、型レベルでプログラミングができ、依存型の模倣さえもできてしまう。 (依存型をやりたいなら最初から依存型のある言語を使えという意見は尤もだが、それはそれとして。) Haskellでの型レベルプログラミングの解説記事というのは、英語圏ではちらほら見かけるが、日本語圏ではあまり見ない。2018年(原文は2017年)に公開された Haskellにおける型レベルプログラミングの基本(翻訳) – Qiita が数少ない例で

                                                        • プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine

                                                          自作言語の制作の流れ こんにちは。原(@yhara)と申します。普段は会社員としてRubyプログラマーをしていますが、趣味としてプログラミング言語の自作というものをやっています。 私が現在制作しているのがプログラミング言語 Shiikaです。Shiikaは「Rubyのように書ける静的型付け言語があったらいいのにな」という思いから作り始めた言語で、まだできることは少ないですが、取り入れたい機能はたくさんあり、日々こつこつと作業を進めています。 今回は自作言語をなぜ作るのか、キャリアに役立つのか、という視点から自作言語の魅力をお伝えできればと思います。 言語の「自作」とは プログラミング言語を自作する、とはどういうことでしょうか? プログラマとして働いている人でも、ほとんどの人はC、Java、PHP、Python、Rubyなど既存のプログラミング言語を使っていると思います。しかし、それらの言語

                                                            プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine
                                                          • LogLog Games

                                                            The article is also available in Chinese. Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games. This isn't meant to brag or indicate su

                                                            • 業務で見つけた! Conditional Types

                                                              LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog こんにちは。LINE証券フロントエンドエンジニアの鈴木です。この記事は「UIT 新春 Tech blog」シリーズ2日目の記事です。 LINE証券ではTypeScriptを使用しており、TypeScriptの力を最大限発揮させられるように日々取り組んでいます。そこで、この記事ではLINE証券のプロダクション用コードで実際にConditional Typesが使用された事例をご紹介します。Conditional TypesはTypeScript 2.8で追加された機能で、部分型関係に基づいた型レベルの条件分岐やパターンマッチができる機能です。TypeScriptの機能の中でも高度な部類であり、一部の型に凝ったライブラリや曲芸的な

                                                                業務で見つけた! Conditional Types
                                                              • プログラミング言語の歴史【訂正版作成予定】

                                                                ミスの洗い出しの完了と私の知見が更新出来次第、訂正版を作成します。時間がかかるため、しばらく以下の訂正一覧を使用ください。 この動画も継続して公開いたします。タイトルとサムネイルで区別予定です。 みなさんからのご指摘、大変参考になっております!!多数の誤情報大変申し訳ございません🙇 ***訂正一覧*** (誤00:53)コンピュータの由来は計算機→(正)機械ではなく計算する人間を指す言葉 (誤03:04)ペリーの航路→(正)太平洋側からではなく,慣れたインド洋経由で来航した (誤04:57)ニイタカヤマノボレヒト「マルフタ」ハチ→(正)ヒト「フタマル」ハチ (誤05:15)チューリングマシン→(正)ボンベというマシンで解読。チューリングマシンは無関係。 (誤06:55)機械語のかたまり→(正)1つの機械語。ビット列 (誤07:05)ドイツの位置ズレ→(正)右上が正しいドイツ (誤07:

                                                                  プログラミング言語の歴史【訂正版作成予定】
                                                                • Reconstructing TypeScript, part 0: intro and background

                                                                  Jake Donham > Technical Difficulties > Reconstructing TypeScript, part 0 Reconstructing TypeScript, part 0: intro and background2021-09-07I've been building a "document development environment" called Programmable Matter that supports live code embedded in documents, with a simple TypeScript-like programming language. It's been fun figuring out how to implement it—the type system in TypeScript is

                                                                  • Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself

                                                                    この記事は言語実装Advent Calendar 2020 25日目の記事です。(2022-11-06: 記事の内容を追記していますが、この記事の結論としては「似たようなものは作れるが、完全体にはならない」です) 前提知識 高階カインド型 モナド 従来のエミュレーション方法 Generic Associated Types を用いたエミュレーション(new!) 型クラスを定義する Functor を用意する Pointed を用意する Applicative を用意する Monad を用意する いくつか型を実装していく 現状実装できないもの do 記法 Generic Associated Types(GATs)とは何か 追記(2022-11-06) リポジトリ 参考文献 モナドに関する話題が言語実装アドベントカレンダーの範疇に入るのかわかっていませんが*1、プログラミング言語がお好きな方

                                                                      Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
                                                                    • async/awaitは今後もベストフレンドであり続けるか - hadashiA

                                                                      えーあーー みなさん聞こえますでしょうか。この記事はC# アドベントカレンダー17日めのために書かれました。 いくつかみかけた、async/await と java loom/goroutine的なものを比較する議論に興味があり、少し追ってみた感想です。実装まで深く調べられてません。 TL;DR Green Thread Experiment Results #2398 .NET の runtimelabにて、async/awaitの代替としてのグリーンスレッドを検証した結果が公開されていたが、今後も async/await でいくという結論になっている。 JVM (Java) は対象的に、コードの書き方をなにも変えなくてもランタイムが自動的にI/Oを非同期にしてくれる夢のVirtual Thread を導入した。 Rust界隈では「Why async/await ? why? why?

                                                                        async/awaitは今後もベストフレンドであり続けるか - hadashiA
                                                                      • 関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog

                                                                        オブジェクト指向言語でドメインモデルを実装することが当然のように行われていますが、Go で開発したり、Haskell で遊んだりしている中で、他のパラダイムの言語で実装するのはどうなんだろうかという想いがありました。 そんな時に出会ったのが、Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# という本です。 概要 構成 ドメインを理解し、モデリングする 端的なフレーズ Database-Drive-Design や Class-Driven-Design との違い 型、型、型 関数型言語による実用例 恐怖のモナド さいごに 参考 概要 本書は、とある会社の受注とその関連業務をドメインとし、モデリングして、実装していくという内容です。紙ベースで行われている業務

                                                                          関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog
                                                                        • Lessons from Writing a Compiler

                                                                          The prototypical compilers textbook is: 600 pages on parsing theory. Three pages of type-checking a first-order type system like C. Zero pages on storing and checking the correctness of declarations (the “symbol table”). Zero pages on the compilation model, and efficiently implementing separate compilation. 450 pages on optimization and code generation. The standard academic literature is most use

                                                                          • Haskellで動的計画法を攻略する

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

                                                                              Haskellで動的計画法を攻略する
                                                                            • Windowsで動くプログラミング言語に脆弱性、引数の扱い方の穴を突いて攻撃

                                                                              CERT Coordination Center (CERT/CC, Carnegie Mellon University)は4月10日(米国時間)、「VU#123335 - Multiple programming languages fail to escape arguments properly in Microsoft Windows」において、Windows上で動作する複数のプログラミング言語から引数を適切にエスケープしない脆弱性を発見したと報じた。この脆弱性はアプリケーションのコマンドインジェクションにつながるとして注意を呼びかけている。 VU#123335 - Multiple programming languages fail to escape arguments properly in Microsoft Windows 脆弱性の詳細 多くのプログラミング言語にはオ

                                                                                Windowsで動くプログラミング言語に脆弱性、引数の扱い方の穴を突いて攻撃
                                                                              • Functional programming is finally going mainstream

                                                                                Paul Louth had a great development team at Meddbase, the healthcare software company he founded in 2005. But as the company grew, so did their bug count. That’s expected, up to a point. More code and more features mean more defects. But the defect rate was growing faster than Louth expected. “We were seeing more and more of the same types of bugs,” Louth says. “It was clear that there was an issue

                                                                                  Functional programming is finally going mainstream
                                                                                • Algebraic Effects for the Rest of Us

                                                                                  Have you heard about algebraic effects? My first attempts to figure out what they are or why I should care about them were unsuccessful. I found a few pdfs but they only confused me more. (There’s something about academic pdfs that makes me sleepy.) But my colleague Sebastian kept referring to them as a mental model for some things we do inside of React. (Sebastian works on the React team and came