並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 159件

新着順 人気順

functionalの検索結果81 - 120 件 / 159件

  • 私とテストと自動化と - あどけない話

    何度か講演でこの話をしたのだが、気が向いたのでエッセンスを書き下しておこうと思う。 テスト駆動という言葉が流行る前にプログラマとなった私は、当初どのようにテストを書いてよいのか分からなかった。そんなとき、(当時はオーム社で現在はラムダノートの)鹿野さんから「ビューティフルコード」を献本していただいた。分厚い本なので、興味ある章から読んでいった。その一つがアルベルト・サボイア氏が書いた7章「ビューティフル・テスト」だ。 ビューティフルコード (THEORY/IN/PRACTICE) 作者:Brian Kernighan,Jon Bentley,まつもとゆきひろオライリージャパンAmazon この章では、例として二分探索が取り上げられる。二分探索のアイディアが出されたのは1946年だが、バグのない実装ができたのは12年後だという。実際に実装してみると分かるが、ソートされた配列の中に目的の要素が

      私とテストと自動化と - あどけない話
    • Objective-C小史

      Mediumより。 BY ハンセン・スー これまでに、ユーザがダウンロードしたiPhoneアプリは1,400億を超えています1。iPhoneの成功は、サードパーティ製アプリのエコシステムに関係しています。2008年にApp Storeがデビューしたとき、すべてのアプリは、Apple以外のコミュニティではほとんど使われていなかったプログラミング言語Objective-Cで書かれていました。それ以来、Objective-Cの使用は爆発的に増加し、アプリを作る開発者たちのゴールドラッシュとなりました。Appleは2014年に新しい言語Swiftを導入しましたが、AppleのiOSオペレーティング・システムのほとんどは今もObjective-Cで書かれており、今後何年もAppleのデバイスで使用されるでしょう。 多くのプログラマがObjective-Cを知ったのは、iPhoneアプリ革命の時でした

        Objective-C小史
      • ChatGPTはプログラミング言語マスター(語弊ありまくり) - kmizuの日記

        皆さんおはようございます。見ている人は見ていたかもしれませんが、昨夜はかなり遅くまで巷で話題沸騰のChatGPTによくわからんクエリを投げて、その結果をみてげらげら笑っていました。特に存在しないプログラミング言語であり「ScalaにHaskellと同じ型推論を加えた」言語Scalayがあることにしたら、ChatGPTが本当にHaskellぽい(単なるHMでなく、Haskellぽいというのは型クラスまで推論される辺り)型推論を持つ架空のScalayコードを解釈実行してくれたりしたところは、控えめに言っても予想外の結果で深夜なのに部屋で忍び笑いをしていました。 Scalaに引数の型推論を追加したようなパチもんのプログラミング言語Scalay(仮)ができてしまった(ChatGPTと対話してる間だけの短い命)。 一応、add: (Int, Int) => Int が推論されてるのすばらですね。 p

          ChatGPTはプログラミング言語マスター(語弊ありまくり) - kmizuの日記
        • プログラミングの仕組みを理解する方法 - JavaScript勉強会

          この記事は、プログラミングの専門教育(大学のコンピューターサイエンスなど)を受けておらず、独学でプログラミングを学習している方へ贈るアドバイスです。 =タイムマシンがあったら、過去の自分に会いに行って教えたい話です。 (自分で自分に話しかけるつもりで書いてみますw) プログラミング言語はひとつマスターすれば他もできる? - t-hom’s diary [プログラミング] [設計] [教育] プログラミングパラダイムは(1)命令型(チューリングマシン)、(2)宣言型(ラムダ計算)に大別される。両方理解したら全部カバーできる。言語は開発の背景(動機、歴史)を知るとなじみやすい。例:JSはScheme+Selfで誕生 2019/09/16 06:49 b.hatena.ne.jp ↑はてなブックマークでこの記事が目にとまりました。 なるほどと思いつつ、自分なりに考えてみたことをメモ。 勉強のコツ

            プログラミングの仕組みを理解する方法 - JavaScript勉強会
          • 【第5回】「型」はウェブシステム開発に「エンドゲーム」をもたらすか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

            伊藤直也さんが「今逢いたい」ソフトウェアエンジニアに声をかけて対談を重ねてきたシリーズの最終回は、これまでの対談の文章化を手がけたラムダノート株式会社の鹿野桂一郎さんとの異色対談です。コンピュータ技術書や記事の編集者であると同時に仕事や趣味でHaskellのプログラムも書く鹿野さんの視点を通し、現代のウェブシステム開発に伊藤さんが何を見ているのか、特に「型」と「エンジニアの学び」というこれまでの対談に通底するテーマについて掘り下げます。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・鹿野 桂一郎さん / ラムダノート株式会社 代表取締役社長

            • 超関数型プログラミング

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

                超関数型プログラミング
              • REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita

                はじめに 最近のウェブアプリではバックエンドをREST-APIとして用意し、 フロントエンドはREST-APIから引っ張ってきたデータをReactやVueといったフレームワークで描画することが多いと思います。 このようなウェブアプリを開発する際に問題となるのはバックエンドとフロントエンドを並行して開発しにくいということです。バックエンドができなければフロントエンドはどんなデータが来るのかわからず描画できませんし、バックエンドもフロントエンドからどのようなリクエストが来るか決まらないと実装ができません。 そのため、最初にREST-APIの仕様を定めて、その仕様に沿ったモックサーバを作成し、 フロントエンドはバックエンドが完成するまでそれを用いて開発を進めるということが行われます。 さてそのREST-APIの仕様とはどのように記述されるのでしょうか? 1. 自然言語で記述する 一番よくある場合

                  REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita
                • 世界で最も愛される プログラミング言語 Rust誕生秘話

                  How Rust went from a side project to the world's most-loved programming language 世界で最も愛される プログラミング言語 Rust誕生秘話 処理速度が問題になるプログラムや、ハードウェアを直接操作するプログラムを開発するなら、C/C++言語を選ぶのが当たり前だった。C/C++に取って代わる言語は長らく登場しなかったが、最近になってRustが注目を浴びている。 by Clive Thompson2023.06.12 106 27 多くのソフトウェア開発プロジェクトは、思いもよらないところから生まれる。解決しなければならない個人的な問題を抱えたプログラマーが生み出すこともある。 グレイドン・ホアレの身に起きたのも、多かれ少なかれそういう事態だった。2006年、ホアレはオープンソースのWebブラウザー「ファイアーフォ

                    世界で最も愛される プログラミング言語 Rust誕生秘話
                  • 関数型プログラミングの復活 - QCon Plusハイライト

                    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                      関数型プログラミングの復活 - QCon Plusハイライト
                    • Rust vs. Haskell

                      Rust and Haskell don’t shy away from powerful features. As a result, both languages have steep learning curves when compared with other languages. Trying to learn Rust or Haskell can be frustrating, especially in the first couple of months. But if you already know Rust, you have a head start with Haskell; and vice versa. In this article, we want to show how knowledge of one of these languages can

                        Rust vs. Haskell
                      • HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita

                        はじめに ここ1年ぐらいかけて、Fixという名前のプログラミング言語を作っています。 コアとなる機能の実装がある程度落ち着き、実際にFixを使ってプログラムを書けるようになってきたので、そろそろ言語の紹介をしてみようと思います。 本記事はFixのチュートリアルではなく、どういう思想で設計されていて、どういう特徴を持つ言語なのか、という点を紹介するものです。 意見・提案・助言などをいただけるとうれしいです。 リポジトリはこちらです。 ※ コメントやコミットメッセージは一応拙い英語で書いていますが、日本語でissueを立てたりdiscordで意見・質問してもらっても大丈夫です。 ※ 急いで作った部分もあるため、コンパイラのコードは結構汚いです。ご容赦ください。 現状、Fixをローカルで実行するためにはLLVMのインストールが必要で時間がかかりますが、Fix playgroundを使えばブラウザ

                          HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita
                        • プログラミング言語の歴史を誕生した順に徹底解説 - WEBCAMP MEDIA

                          コンピュータとプログラミング言語の誕生 プログラミング言語の登場に欠かせないのが、まずはコンピュータの誕生です。 コンピュータの誕生とプログラミング言語が誕生した時期について、解説していきます。 1940年以前 正確な日時はわかっていませんが、1940年以前にチャールズ・バベッジが機械式コンピュータを開発した事が始まりです。 1940年頃には機械言語でコンピュータを動かすことが出来るようになっています。この機械言語が初のプログラミング言語と呼ばれています。 チャールズ・バベッジについて詳しく知りたいという方は以下のページをご覧ください。 かつて存在しなかった最高のコンピュータ (TED Talks) 1940年代 1940年代は機械語からアセンブリ言語でプログラムを実行することが出来る様になっており、機械語だけでなくアセンブリ言語により単純な処理をコンピュータで実行する事が出来る様になって

                            プログラミング言語の歴史を誕生した順に徹底解説 - WEBCAMP MEDIA
                          • 我田引水的な「関数プログラミングの入門」資料紹介 - あどけない話

                            これは、Haskell Advent Calendar 2021の2日目を埋めるために書いた記事です。実は単に僕が作った「関数プログラミングの入門」の資料の宣伝です。 ちなみに、僕の関数プログラミングの定義は「不変データプログラミング」であり、おそらく最も厳しい定義です。なので内容が分かれば、関数プログラミングに入門できた言ってもよいのではないかと思います。 関数プログラミングことはじめ 僕は毎年、岡山大学の三年生に向けて、2コマで関数プログラミングを教えています。その資料が、「Cプログラマーのための関数プログラミングことはじめ」です。岡山大学工学部情報系学科の学生は、C言語を習っているので、C言語に似た文法を独自に定義して、関数プログラミングを説明しています。 [入門]関数プログラミング [入門]関数プログラミングは、WEB+DB PRESS Vol.67に掲載された記事です。編集部のご

                              我田引水的な「関数プログラミングの入門」資料紹介 - あどけない話
                            • 4歳娘「パパ、constしか使わないで?」 - Qiita

                              休日ワイ ワイ「(カタカタカタカタカタ・・・)」 ワイ「(ッターーーーン!!!)」 ワイ「あっ、ぜんぶ消えてもうた」 娘(4歳)「パパ?」 娘「私のお願いしたシステム、作ってくれた?」 娘「曜日によって色々なメッセージが表示されるシステム」 ワイ「おお、鋭意製作中やで(震え声」 ワイ「今、休日かどうかを表示する機能のコーディングを開始したところや」

                                4歳娘「パパ、constしか使わないで?」 - Qiita
                              • Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO

                                はじめに 業務のメインプロジェクトではScalaを使うことが多く、チームに新しく加わったメンバーのオンボーディングではScala言語自体やライブラリ(主にtypelevel系)の資料を紹介する機会が少なくありません。毎回リンクのリストを作り、コメントを添えて共有するのですが、回数も増えてきたので記事にしてみることにしました。 Scala言語の入門 ScalaText 『Scala スケーラブルプログラミング』(第三版) 『Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド』 1つ目のScalaTextは有名なドワンゴさんの研修資料が日本のScalaコミュニティに寄贈にされたものです。2つ目以降はScalaTextの冒頭でも言及がありますが、入門としては鉄板かなと思います。他のプログラミング言語を修得されているのであればScalaTextを一通り

                                  Scalaを使っているプロジェクトにメンバーがジョインする時に勧めている資料まとめ | DevelopersIO
                                • Real World Haskell — Monday Morning Haskell

                                  Real World HaskellA lot of people think day-to-day tasks like running a web app are difficult or impossible in Haskell! But of course this isn't true! In our Real World Haskell series, we'll take you through a whole slew of libraries that allow you to write a web backend. These libraries use Haskell's features to approach things like database queries and API building in unique ways. Part 1: Databa

                                    Real World Haskell — Monday Morning Haskell
                                  • IO モナドと副作用 - Haskell-jp

                                    純粋関数型プログラミングで副作用を扱う方法Posted by Mizunashi Mana on April 05, 2020 Haskell は他のプログラミング言語には見られない特徴を多く持っている。その中の1つが純粋性だ。Haskell は純粋関数型プログラミング言語であることを、売りの1つにしている。しかし、純粋性は多くの場合表現力の縮小を招く。ところが Haskell は、IOモナドの導入により、通常のプログラミング言語と変わらぬ表現力を持てるようになっている。これは、とても驚くべきことだ。しかし、同時にこれは Haskell 入門者にとって、大きな混乱を招いているようだ。 今回は、そもそも純粋性とはなんなのか、なぜ他の言語は純粋性を担保できないのか、そして Haskell はどうやって IO モナドにより純粋性を担保しつつ他の言語と変わらない表現力を持てるようにしているのかにつ

                                      IO モナドと副作用 - Haskell-jp
                                    • 関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう

                                      この記事は、関数型プログラミングはまず考え方から理解しよう の記事を純粋関数型言語Elmで書き換え、一部の文章について批判的に言及させていただいた記事になります。この記事を書こうと思ったきっかけとしては、今回参考にさせていただきた記事が過去に書かれたものにも関わらず、今に渡っても見られていそうなこと。未だにパラダイムの理解に関する誤解が多く散見されること。改めて純粋関数型言語の実用性・有用性について、見直されるべきだと思い、この記事を執筆させていただきました。 次のステップアップ記事は、[超入門] FizzBuzzで考える関数型プログラミング学習を純粋関数型言語でやる理由です。 はじめに、この記事の主張を結論としてまとめておきます。 対比すべきは、関数型プログラミングとオブジェクト指向プログラミングではなく、関数型プログラミングと手続き型プログラミングである 関数型プログラミングの考えを学

                                        関数型プログラミングはまずは純粋関数型言語を用いて、考え方から理解しよう
                                      • Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記

                                        追記:いくらなんでもあまりにも長いので、配列演算に焦点を絞ってより「Rustっぽさ」の気持ちを強調した姉妹編を書きました。手っ取り早く雰囲気を掴みたい方はこちらもどうぞ。 TL;DR GHC 9.0 から Haskell に入った線型型(Linear Types)の機能を一部割とガッツリ使ってみたので、Linear Haskell の現在の使い心地と将来の展望を報告するよ。 使おうと思えば使える段階にあるけれど、一部バグもあるし、まだ言語機能面で実装が追い付いていない部分もあって、快適に書けるようになるにはもうちょっと掛かるよ。それでも実用しようと思えばできるレベルにあるよ。 RustのようになるにはLinear Constraintsに期待。 更新履歴 2023/12/15 11:45 姉妹編へのリンク追加。 2023/10/01 12:30 線型性を納得してくれない場合の \eta-展

                                          Haskell は Rust になれるのか?──2023年の Linear Haskell 体験記
                                        • 例外を初めて実装した言語 - from scratch

                                          リクルートアドベントカレンダーの20日目の記事です。 adventar.org 最初にこの疑問を思ったのは、今も忘れない R-ISUCON 2021 というリクルートの社内ISUCONの運営で炎上していた時の話です。 ちなみに R-ISUCON 2021 は劇的な結果で終わっているので、興味のある方は見てみてください。 blog.recruit.co.jp R-ISUCON 2021 では、 Node.js (TypeScript), Go, Java の3パターンの実装が出てくることが通例になっていまして、今回は Java の実装から Node.js, Go に適用していた時に一緒に実装していたメンバーからの疑問が『例外には色々な議論があるけれど、「例外を初めて実装した言語」ってどういう気持ちで実装したんだろう』という話が挙げられたので、そのネタを持ってきました。 ちなみにここで指してい

                                            例外を初めて実装した言語 - from scratch
                                          • プログラミングとは ― 最強のカレーレシピ ― - golden-luckyの日記

                                            「うちの学校でもついにプログラミングの授業が始まったよ」 「それは興味深いね。どんなふうに教えてるの? やっぱりScratchとか?」 「Scratch? ああ、プログラミング言語のことか。プログラミング言語は使わなくていいんだよ」 「え?」 「小学校で学ぶプログラミングっていうのは、プログラミング言語を覚えさせることが目的じゃないからね。システム思考力とかロジカルシンキングって聞いたことあるだろ?」 「あるかないかでいったら、あるよ」 「プログラミング言語みたいなのは、単なる技術だ。それは仕事で必要な人だけが覚えればいい。子どもたちに教えるべきことは、プログラミング言語みたいな技術じゃなくて、システム思考やロジカルシンキングの延長といえるプログラミング的思考なんだよ」 「プログラミング的思考っていうのが、システム思考やロジカルシンキングとどう違うのか、いまいちよくわからないんだけど…」

                                              プログラミングとは ― 最強のカレーレシピ ― - golden-luckyの日記
                                            • よわよわエンジニアがTAPL(型システム入門)を読んだら

                                              こんにちは,sititou70です.私は社会人2年目のよわよわWebフロントエンドエンジニアであり,「数学」とか「証明」とは無縁の人生を送っています. そんな私ですが,がんばって型システム入門(通称:TAPL)という本を読み終えました.全32章,503ページ,牛乳パック1本分の重さがあり, 自立します. 自立する本は大抵やばいです. TAPLの序文を見ると,想定読者は プログラミング言語と型理論を専門とする大学院生および研究者 プログラミング言語の鍵となる概念に触れたい,計算機科学の全分野の大学院生および習熟度の高い学部生1 となっています.本記事では 「そんな本を,学生や専門家でない人間(私)が読んだらどうなるのか」 について書きます.専門的な用語は避けますので,TAPLの雰囲気だけでも感じ取ってもらえたら嬉しいです. どうなったのか 宇宙語が読めるようになった 「型安全」を説明できるよ

                                                よわよわエンジニアがTAPL(型システム入門)を読んだら
                                              • 世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか

                                                Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。 ZigのWebサイト Zigとは Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。 Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++やRust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。 そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推

                                                  世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
                                                • Domain Modeling Made Functional を読んだ - 詩と創作・思索のひろば

                                                  最近フロントエンドに限らず TypeScript を書くことが多くなって、これでそれなりの規模のサーバサイドアプリケーションを書くときどうなるんだろう、と気になって読んでみた。いわゆる普通のオブジェクト指向ではなく関数指向な書き方でいきたいとき、どうするのが好ましいのか、というような観点。 名前的にそのものずばり、という本があったので購入した。日本のウェブを検索してみてもいくらか言及があるので価値はありそうだという判断で、大人なので円安でも強行する。 Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# (English Edition) 作者:Wlaschin, ScottPragmatic BookshelfAmazon 自分は PDF で読みたかったので

                                                    Domain Modeling Made Functional を読んだ - 詩と創作・思索のひろば
                                                  • Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル

                                                    あまり知られていない関数型言語のおもしろ概念として、Opticsというものがある。 Opticsとは、オブジェクト指向言語で言うところのSetter/Getterを一種の関数として捉え、いくつかの便利な特性を付与したものの総称だ。この便利な特性によって、Setter/Getter以上のことをパワフルにこなせる。 最も有名なOpticsはLensであり、色々な解説資料が(主にHaskell向けに)出ている。 blog.recruit.co.jp さて、これまでのOpticsを紹介する資料はSetterとGetterとしての側面に注目しがちだったので、じゃあOpticsの何が良いのか、Scalaでやる意義は何か、という側面をこの記事で紹介しようと思う。 Optics -- vs. copyメソッド地獄 Opticsは合成可能である Opticsはボトムアップのアプローチである Opticsがう

                                                      Optics: 「パス」に型を付ければ、データ全体に型を付ける必要はない - Lambdaカクテル
                                                    • 10年間使ってみて見えたHaskellの闇と光 - Qiita

                                                      はじめに わたしがHaskellを使い始めてもうそろそろ10年目になります。(タイトルは多少サバを読んでいますね) これまで使ってきた感想をまとめます。 Haskellのつらいところ まずは愚痴らせてください。 コンパイルが遅い 依存モジュールはすべてソースコードからビルドする必要があります。(バイナリ形式のモジュールはありません) 最初のビルドに20分くらい待つのはザラです。 複雑な型システムをつかうと型推論や型レベル計算に時間がかかります。 高速なHaskellプログラムを書くためには多くの関数をインライン化する必要があります。最適化ビルドではインライン展開によってコードサイズが大きくなるので時間がかかります。 デバッグが難しい 公式のGHCiデバッガはありますが、今のところIDEから簡単に利用できるわけではないですし、コンパイル済みのライブラリはデバッグできないです。 近年スタックト

                                                        10年間使ってみて見えたHaskellの闇と光 - Qiita
                                                      • アーキ部:強いて言えば「集約どう実装するのかな、を考える」会に参加してきた! - そこに仁義はあるのか(仮)

                                                        kawasimaさん主催のアーキ部に参加しました! architect-club.connpass.com テーマの発端になったツイート 部門に社員を配属するとか、カートに商品追加するとか、コレクションを集約としてアイテムを追加する訳だが、件数多くいちいちコレクション全体をメモリにロードしてられないこともある(というかそういうケースの方が多いのでは?) 。そういう時にどういう設計パターンが考えうるか、まで論じて欲しい。— kawasima (@kawasima) 2023年1月13日 これまでドメイン駆動設計やクリーンアーキテクチャとかを勉強してきましたが、このツイートを見て「実際に『性能』を意識してコードを書いていくってどうしたら良いんだろう?」と謎になりました。 この勉強会では、『性能』は重視しつつ、どうやってドメインをコードに表現していくのか、というお話をkawasimaさんからして

                                                          アーキ部:強いて言えば「集約どう実装するのかな、を考える」会に参加してきた! - そこに仁義はあるのか(仮)
                                                        • それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub

                                                          それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md 前置き この記事は静的型付け言語が理解されないことに業を煮やし……いや、ブチギレてしたためたものです。そのため多少過激な表現を伴います 性質上どうしても特定の人々に攻撃的な内容になります リーナスの下品な発言の引用は非現実的です。わたしが5人くらいいれば現実的なのですが…… Pythonの機械学習分野は例外です。ですがここもいずれ静的型付け言語に取って代わられるべきであると考えています(そもそもFFIが得意と言うだけでPython使われてるだけだし) 「型」の概念が石器時代で止まっている方へ まずはこちらをお読みください。 私と型システムとポエム - The curse of λ https://myuon.github.io/posts/type-system-poem/ 特に「よくある誤解」のこ

                                                            それでもRuby、Python、JavaScript(あるいはJava)を使う方々へ.md · GitHub
                                                          • 「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に

                                                            「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に アプリケーションフレームワーク「Flutter」で使われているプログラミング言語「Dart」の開発チームは、来年(2023年)半ばにメジャーバージョンアップとなる「Dart 3」のリリースを予定していると発表しました。 The road to Dart 3 Dart 3, expected by mid 2023, will only support sound null safety. Learn more about how Dart's sound safety compares to other languages, and how we're preparing for this major release in the blog by @MiSvTh → https://t.

                                                              「Dart 3」が来年登場。完全Nullセーフな言語となり、Nullセーフティなしの実行はサポート外に
                                                            • 関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう

                                                              ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。 ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメイン

                                                              • インターフェースと型クラスの違いを考える

                                                                この記事では、JavaライクなインターフェースとHaskellライクな型クラスを比較します。どちらも、複数の異なる型を統一的に扱うための仕組みです。 インターフェース インターフェースはご存知の方も多いと思いますが、コード例を載せておきます。 // インターフェースの定義 interface Greetable { String greet(); } // 実装の例1 class Hello implements Greetable { String message; Hello(String m) { this.message = m; } public String greet() { return "Hello " + message + "!"; } } // 実装の例2 class Goodbye implements Greetable { public String gree

                                                                  インターフェースと型クラスの違いを考える
                                                                • 関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。

                                                                  先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm, Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開

                                                                    関数型プログラミングなんもわからん。を考えようと言うイベントを開きました。
                                                                  • ざっくりとしたZigの紹介

                                                                    BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);

                                                                      ざっくりとしたZigの紹介
                                                                    • 【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita

                                                                      【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等)JavaScriptリーダブルコード高階関数 複雑すぎるforの処理に悩まされたことはありませんか? プログラミング習いたての頃、forに悩まされた記憶はありませんか? また、業務で複雑すぎるfor文を見て、これくらい理解できないとやっていけないのか…と悩んだ記憶はありませんか? 実はそのfor…もっと読みやすい書き方が出来て、簡単に読めるとしたら楽じゃないですか? いやいや、単にもっと楽したくありませんか? 今回は個人的に「苦手なfor文」の書き換え(map, filter, reduce等)について、短くなるだけじゃないところを紹介したいと思います。 コードを読む事に神経をとがらせて疲弊したくない人には、オススメしています。(頭を使う労力が減ってると信じたい...) 本記事につ

                                                                        【forが嫌い!可読性を上げたい!】楽するために学ぶ配列の高階関数(map, filter, reduce等) - Qiita
                                                                      • 40歳から始める関数型言語、OCaml - すぎゃーんメモ

                                                                        動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそうで真似してみたくなって、自分も今さらながら何か関数型言語はじめてみるか〜と周りに相談したところOCamlをオススメされたので 今年に入ってからひたすらOCaml書く練習してる。AtCoder Boot camp for BeginnersのEasy 100をようやく終わらせたところ。 pic.twitter.com/POBWhvHHCn— すぎゃーん💯 (@sugyan) April 9, 2023 大西さんが動画の中で感極まっていたけど、宮川さ

                                                                          40歳から始める関数型言語、OCaml - すぎゃーんメモ
                                                                        • 経験5年のHaskellユーザがScalaを仕事で半年使ってみた

                                                                          haskell-scala-java ちょっと前までScalaを書いていたので、 Haskell好きな人がScalaを書いた感想を書きます。 タイトルは経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blogの模倣です。 あくまで1ユーザの感想です。 Scalaに慣れてしまうと違和感を忘れてしまうと思ったので、当時箇条書きで雑にメモしていたものを参照して書いています。 逆にScala使いがHaskellを知るメモに役立つかもしれません。 Haskell歴 when: 2013年から知って学び始めましたが、本格的に使い始めたのは2015年からで、5年ほど使っています where: どの言語を使っても良くて新しい言語を学ぶ必要がなければ基本的にHaskellを使っています what: 趣味OSSプロジェクトの大半 現在一番スターもらっ

                                                                            経験5年のHaskellユーザがScalaを仕事で半年使ってみた
                                                                          • ボレロ村上(村上原野)さんと constexpr のこと - d.y.d.

                                                                            22:22 21/11/20 ボレロ村上(村上原野)さんと constexpr のこと 去る2020年2月、縄文陶芸家にしてC++プログラマという希有な二つの顔を持つ人物がこの世を去りました。 ボレロ村上 (村上原野) 氏です。 正直なところ、陶芸家としての彼の側面については私はほとんど何も知らないに等しいです。 残された作品を見て何かを語れるほど芸術に通じているわけでもありません。 いつか機会があれば見に行こうと思っていた村上さんの作品を目にする最初の機会も、 昨年訪れた追悼展になってしまいました。 ただ、それでも私は、彼自身の登壇発表の資料 であったり、 そして何よりも縄文・陶芸に造詣の深い方々の記された幾つかの文章によって、 彼が一体何を成し遂げたのか、成し遂げようとしていたのかに触れることができています。 この夏にはクラウドファンディングで 作品集 も出版され、誰でも手にとって縄文

                                                                            • はじめに|Rust入門

                                                                                はじめに|Rust入門
                                                                              • GitHub - carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

                                                                                Fast and works with C++ Performance matching C++ using LLVM, with low-level access to bits and addresses Interoperate with your existing C++ code, from inheritance to templates Fast and scalable builds that work with your existing C++ build systems Modern and evolving Solid language foundations that are easy to learn, especially if you have used C++ Easy, tool-based upgrades between Carbon version

                                                                                  GitHub - carbon-language/carbon-lang: Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
                                                                                • Deep Tabnine - Tabnine Blog

                                                                                  Update (August 19): We’ve released Tabnine Local, which lets you run Deep Tabnine on your own machine. TL;DR: Tabnine is an autocompleter that helps you write code faster. We’re adding a deep learning model which significantly improves suggestion quality. You can see videos below and you can sign up for it here. There has been a lot of hype about deep learning in the past few years. Neural network

                                                                                    Deep Tabnine - Tabnine Blog