並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 18 件 / 18件

新着順 人気順

functionalの検索結果1 - 18 件 / 18件

  • 『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech

    なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon 良い、買おう、読もう、(コードを)書こう、以上! めっちゃ良いですよ、この本 中盤のプリミティブじゃやりづらい→直積→直和→二つ合わせてADT→値を取り出すためのパターンマッチの解説の流れの疾走感がいいですね— magnoliak🍧 (@magnolia_k_) 2023年8月6日 『なっとく!関数型プログラミング』は、2022年に出版された『Grokking Functional Programming』の邦訳版で、主にScalaを題材として関数型プログラミングを学んでいくための入門書("Grokking"は、完全に理解する、という意味)。あくまで関数型プログラミングの考え方、コードの書き方、良い設計の指針の解説が主眼に置かれているので、Scalaの言語機能の入門書ではない。Scalaの言語仕様を網羅

      『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech
    • 関数型プログラミングと型システムのメンタルモデル

      Qiita Conference 2023 Autumun での発表資料です 発表時間の見積もりが下手で後半全然説明できませんでした、すみません! 実際のプロダクト開発ではどうすればいいのか? というケースは以下のスライドを参照してください。 (本スライドは、こちらのプロダクト開発の経験をベースに基礎を再整理したものになります) https://speakerdeck.com/naoya/typescript-niyoru-graphql-batukuendokai-fa-75b3dab7-90a8-4169-a4dc-d1e7410b9dbd

        関数型プログラミングと型システムのメンタルモデル
      • ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP

        Object-Oriented Conference 2024で発表した資料です。 https://fortee.jp/oocon-2024/proposal/b31c9818-3cb8-4350-adfe-cbc839cdf829 ビジネスの専門知識(ドメイン)を中心に据えたドメイン駆動設計に代数的データ型などの関数型のパラダイムを加えたよりタイプセーフな関数型DDDを紹介します。 本セッションではドメインモデリングによって発見したモデルやビジネスロジックをソフトウェアに反映する際により型を重視した設計を加えます。 型で表現する範囲が広がることでビジネスロジックをより明確にコードで表現できるようになります。 さらには型で表現されているためコンパイルフェーズで気付けるミスが増え、ソフトウェアの品質向上にもつながります。 関数型の考えをいれるといってもただ単にHaskellなどに代表される関

          ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP
        • Amber The Programming Language

          Write your scripts in a modern type-safe and runtime-safe programming language that handles many bugs and mistakes during compilation process.

            Amber The Programming Language
          • TypeScript 関数型スタイルでバックエンド開発のリアル

            TSKaigi 2024 のスライドです

              TypeScript 関数型スタイルでバックエンド開発のリアル
            • 「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由

              「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由 #17 動的型付け言語と大規模開発 テーマは「動的型付け言語と大規模開発」 まつもとゆきひろ氏:まつもとゆきひろです。Matzチャンネル17回目ということでお送りします。ちょっと前になりますが9月28日に私が技術顧問を始めたクラウドサーカスという会社さんがテックイベントを開催されて、その時のテーマが「動的型付け言語と大規模開発」というテーマでした。 その時に話したこととか、話そうとしたこと、話そうと思っていたんだけど時間の関係で話せなかったことなどを補足する意味も含めて今日はちょっと放送しようかと思います。というか、分量が多いので2回に分けて話そうかなと思っています。 このクラウドサーカスのイベントのテーマは別に私から指定したわけではなくて、先方が「こんなテーマで話したいんだ」とか「聞き

                「自分の未来予測を信じてちょっと意地を張ってみる」 まつもとゆきひろ氏がRubyに型宣言を入れない理由
              • TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する - 一休.com Developers Blog

                この記事は 一休.comのカレンダー | Advent Calendar 2023 - Qiita 10日目の記事です。 昨今は Web アプリケーション開発の世界でも、関数型プログラミングのエッセンスを取り入れるような機会が増えてきました。 とはいえ、一つのアプリケーションを 1 から 10 までがっちり関数型プログラミングで構成するというわけではなく、そのように書くこともあればそうでない従来からの手続き的スタイルで書くところもあるというのが現状で、どこまで関数型プログラミング的な手法を取り入れるかその塩梅もまちまちだと思います。まだ今はその過渡期という印象も受けます。 本稿ではこの辺りを少々考察してみたいと思います。 先日、Qiita Conference 2023 Autumn で以下のテーマで発表を行いました。 この発表では「関数型プログラミング最強!」という話をしたわけではなく、

                  TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する - 一休.com Developers Blog
                • 「BASIC」誕生60周年--コンピューター利用を容易にしたシンプルな言語の歴史

                  Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル 2024-05-15 07:30 「Python」や「JavaScript」が学ばれるようになるずっと前、米国時間1964年5月1日の夜明け前の暗闇の中で、コンピューター史におけるささやかながら非常に重要な出来事がダートマス大学で幕を開けた。数学者のJohn G. Kemeny氏とThomas E. Kurtz氏がGeneral Electricの「GE-225」メインフレームを操作して、独自に考案した言語の最初のプログラムを実行した。その言語こそ、初心者向け汎用記号命令コード、すなわち「BASIC」だ。 BASICは最初に普及した言語ではない。その栄誉を得たのは、ビジネス分野では「COBOL」、エンジニアリング分野では「FORTRAN」だった。しかし、19

                    「BASIC」誕生60周年--コンピューター利用を容易にしたシンプルな言語の歴史
                  • エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS

                    TypeScript の型システムを活用して、本番のアプリケーションにおける実用的な問題を解決することを目指しています。Effect-TS は、以下のような特徴を備えています。 並行性(concurrency):Fiber ベースの並行モデルにより、高いスケーラビリティと低レイテンシを実現 コンポーザビリティ(composability):小さく再利用可能なパーツを組み合わせることで、メンテナンス性、可読性、柔軟性の高いソフトウェアを構築する リソースの安全な管理(resource-safety):処理が失敗したとしても、安全にリソースを開放する 型安全性(type-safety):TypeScript の型システムを活用した型推論と型安全性に焦点を当てている エラー処理(error handling):構造化された信頼性の高い方法でエラーを処理する 非同期性(asynchronicity

                      エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS
                    • 【TypeScript】カリー化・部分適用は便利だよ! - Qiita

                      【TypeScript】カリー化・部分適用は便利だよ! カリー化・部分適用利用してますか? 調べたけど「関数を第一級オブジェクトとしてー」とか「関数を部分適用してー」とか説明が講義っぽくて途中で諦めた方も多いと思います。自分もそうでした。 また、知ってるけどどんな時に使うべきか迷って使ってないという方もいると思います。 具体的なコードを交えながら、カリー化・部分適用について、噛み砕いて説明していきたいと思います。 なお、すべてのTypeScriptのサンプルコードは実際に動かして確認することができますので、TypeScript Playgroundなどで是非お試しください。 カリー化と部分適用 まずはカリー化と部分適用の定義をば。 カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引

                        【TypeScript】カリー化・部分適用は便利だよ! - Qiita
                      • F# 8 のリリースで F# が最強の言語になってしまった件 - Qiita

                        おはようございます. 遅ればせながら,11/14/2023 の .NET 8 のリリースの内容を確認し,コードジェネレータの新しい最適化機構(PGO)のデフォルト有効化や AI/LLM のアプリケーションへの統合,各フレームワークのアップデートや,C# の方ではコレクション記法の統合など様々なトピックがある中で,付随してリリースされた F# 8 についても新機能をチェックしてみました. ヤバすぎました. 私は涙しました.これまであらゆる F#er が望んでも得られなかったものがそこにはありました.F# という言語がこれまでの不満点を一気に払拭し,至高の領域に到達しようというヤバみを感じるリリースだったので,今回は以下のブログポストに記載されている新機能から個人的に凄いと思ったものを抜粋して解説します. 11/24/2023 一部サンプルコードのミスを修正しました. F# および F# 8

                          F# 8 のリリースで F# が最強の言語になってしまった件 - Qiita
                        • 私とテストと自動化と - あどけない話

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

                            私とテストと自動化と - あどけない話
                          • 世界で最も愛される プログラミング言語 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誕生秘話
                            • HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita

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

                                HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita
                              • 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 体験記
                                • 関数型ドメインモデリング ドメイン駆動設計と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

                                      インターフェースと型クラスの違いを考える
                                    • 「Rubyは落ちるか、伸びるかの岐路に立っている」 まつもとゆきひろ氏が語る、30年後に向けた生存戦略

                                      プログラミング言語「Ruby」の国内最大のビジネスカンファレンス「RubyWorld Conference」。Rubyの先進的な利用事例や最新の技術動向、開発者教育の状況などの情報を発信することで、「Rubyのエコシステム(生態系)」を知ることができる場として開催します。ここで登壇したのは、Rubyアソシエーション 理事長のまつもとゆきひろ氏。プログラミング言語の過去、歴史から学ぶ教訓について発表しました。全4回。4回目は、Rubyコミュニティが生存するために必要なことについて。前回はこちら。 Rubyコミュニティが生存するためには何が必要か まつもとゆきひろ氏(以下、まつもと):さて、これらの教訓をもとに、Rubyの未来はどうなるかについて考えてみましょう。 教訓をもう1回まとめておきますね。アイデアだけでは、価値がない。単純さは、いつもいいこととは限らない。仕様が大きいことは、いつもい

                                        「Rubyは落ちるか、伸びるかの岐路に立っている」 まつもとゆきひろ氏が語る、30年後に向けた生存戦略
                                      1