『プログラマのための圏論』はこれまでの分をまとめてPDFファイルにしました。参考にしてください。
『プログラマのための圏論』はこれまでの分をまとめてPDFファイルにしました。参考にしてください。
この記事は以下のページに移転しました. blog.ryota-ka.me 「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.その有用性ゆえに,近年では新たな言語の策定の際にその概念が輸出され,Rust や Swift などの言語にも採用されている. 「代数的データ型とはなんですか?」と問われたときには―問われたことがないのでわからないのだが―おもむろに ghci か utop を立ち上げて,解説を始めるのではないかと思う.ひとしきり解説をした後,「つまり直積の直和なんですよ〜🙌✨」と言って話を締めくくるだろう. int 型や float 型など,「メモ
Racket (旧称 PLT Scheme) は、Schemeから派生したプログラミング言語である。Racket プロジェクトは以下の4つから構成されている。 スクリプト処理系、Racket (リッチなランタイムシステム, 豊富なライブラリ, JITコンパイラ などが含まれる) Racketプログラムの開発環境、DrRacket (旧称 DrScheme) コンピューティングとプログラミングを"教養教育カリキュラムの必須分野にする"試み ProgramByDesignアウトリーチ・プログラム。[2] Racketのユーザ作成パッケージの配布システム PLaneT[3]。 歴史[編集] Racket を開発したPLT project は、1990年代中ごろに, Matthias Felleisenによってまず研究グループとして立ち上げられ、その後すぐに、プロジェクトは初心者プログラマ向けの教
この記事の補足を書きました。併せてご覧いただけると幸いです。 「関数型プログラミングはオブジェクト指向の正当な後継である」がわからない理由 対象読者 この記事はオブジェクト指向設計を本格的に学びドメイン駆動設計や責務駆動設計等を実践したことがある人々に「オブジェクト指向と関数型プログラミングの関係」を深く知ってもらうことを目的としています。これらの人々の中には手に馴染んだオブジェクト指向に未だに固執している人や、関数型プログラミングが気になってSwiftやScalaを触り始めているがイマイチ関数型プログラミングの本質が見えていない人も多いと思います。そうした人々が次の一歩を踏み出すキッカケになれば幸いです。 なぜこの記事を書こうと思ったのか? IT系の情報サイト等で「Haskellがすごい」という記事を見かけるようになってからもう10年近く経とうとしています。私自身もこれまでに何度か関数型
ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで
FPやHaskellのモナドをSwiftを使って説明してみたけど、過去のものなので今はあまり参考にならないかも。それと内容的にも少し修正が必要。Read less
関数型プログラミングが流行していることもあって、頻繁に耳にする「参照透過性」という用語について考えます。 ∥ 参照透過性 - Wikipedia その過程で目にした、Stack Overflow 上の Reddy 氏の発言が面白かったので、ザックリと訳します。 用語の起源と、それがプログラミング言語に導入された経緯 一応意味は分かってはいるんですが、なぜ「副作用のない関数呼び出し」やら「変数への再代入の禁止」といった特性を「参照透過性」と呼称するのかが分かりませんでした。この場合の「参照」は、何が何を参照することであり、また、それがどういう状態にあることを「透過である」としているのかが、通り一遍調べてみても分かりませんでしたので、掘りに行ってきます。 英語版 Wikipedia の方には、この考え方がプログラミングの概念として導入された経緯についての論文が参考文献として挙げられています。
4. Multi-paradigm Swift is a multi-paradigm, compiled programming language created by Apple Inc. for iOS, OS X, and watchOS development. https://en.wikipedia.org/wiki/Swift_(programming_language)
恒等モナド Maybeモナド リストモナド 継続モナド Do 記法 連鎖呼び出し モナド とは、一連のステップによって実行する計算を記述する際に使用する、1つのデザインパターンです。 純粋関数型プログラミング言語 では、モナドは 副作用を管理する ために広く利用されていますが、 マルチパラダイム言語では、モナドで複雑性を制御することもできます 。 モナドはデータ型をラップして、空の値を自動的に伝播したり( Maybe モナド)、非同期コードを簡略化したり( 継続 モナド)といった、新たな動作を既存のデータ型に追加します。 一連のコードをモナドと見なすためには、その構造には次に挙げる3つの要素が含まれていなければなりません。 型コンストラクタ — 基本的な型に対してモナドの動作を追加した型を作成する機能です。例えば、基本的なデータ型 number に対して、 Maybe<number> とい
近況 ふとした瞬間に虚しくなることがある いきさつ 今年、秀和システムから関数型プログラミングに関する本が出て、良くも悪くも、その本が注目を集めることになってしまいました。そんな中で色々な人が反応していましたし、自分もこのようなかたちで感想を書きました。 一方で、このような本を書かれるくらいであるならば、自分で真っ当な本を書けばいいわけだし、技術書を書くことなんて、そんな敷居の高いことではないというカウンターもあり、個人的にはそれも最もだなあ、という印象がありました。その中で自分なりに関数型プログラミングについて理解したことを元にQiitaに駄文をアップしたりしていました。間違ってたら、誰かが訂正してくれるだろうし、そのほうが自分にとって勉強になるだろう、と思うので。 ですが、「関数型プログラミング」というのは「なんだか難しい」という印象を覚えるのも事実のようです。実際に、最新の『Soft
Racket (DrScheme)の使用方法 メディアセンターのPCにインストールされているDrScheme(PLT scheme)はschemeの処理系の一つです。インタプリタ方式となっています。現在は名称が変更され、Racketと呼ばれています。自宅等のWindows, Macintosh, Linuxにインストールしたい場合にはこのサイトからダウンロードし、ウイルスチェックの上インストールしてください。 インストール後、Racketを動作させるとメニューや説明が日本語で表示されます。 しかし以下では、表示を英語に変更した上で説明しています。 具体的には「ヘルプ」メニューの「Interact with DrRacket in English」を選択し、処理系を再起動しています。 それでもversionの違いからメニューやメッセージ等、あるいは保存するファイル名について、ここでの説明とメ
#lang racket/gui (define my-language 'English) (define translations #hash([Chinese . "你好 世界"] [English . "Hello world"] [French . "Bonjour le monde"] [German . "Hallo Welt"] [Greek . "Γειά σου, κόσμε"] [Portuguese . "Olá mundo"] [Spanish . "Hola mundo"] [Thai . "สวัสดีชาวโลก"] [Turkish . "Merhaba Dünya"])) (define my-hello-world (hash-ref translations my-language "hello world")) (message-box "" my
Issue #16 Swift, September 2014 By Chris Eidhof まずはじめに、私は非常に偏っていることを認めなくてはなりません。私はSwiftが大好きです。私がCocoaのエコシステムに関わって以来起こったことの中で一番いい出来事だと思います。なぜそう思うか、それを私のSwift、Objective-C、Haskellの経験を共有することで伝えたいと思います。この記事で取り上げることはベストプラクティスということではなく(執筆時点でSwiftは新しすぎて確立したベストプラクティスはまだありません)、Swiftがどこで威力を発揮するのか、その例をお見せします。 少し個人的なバックグラウンドを説明すると、iOS、OS Xプラットフォームのプログラマーになる前、私は何年かHaskellを(他の関数型言語とともに)書いていました。私は今でもHaskellは経験した中
はじめに これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください。 【ゴール】 「なぜ関数プログラミングは重要か」という文章で重要とされている「高階関数」と「遅延評価」について理解してもらうこと (遅延評価の説明は次回) 【執筆動機】 関数型な人による関数型の説明がつらいため (関数型の利点を関数型言語で説明されても、関数型言語を知らん人には伝わらんわな) 関数型界隈の騒動を利用して漁夫の利を狙うため (関数型で騒動が起きる → 関数型に注目が集まる → 関数型を勉強するニワカが増える → SICP や OCaml や Haskell に挑む → みんな挫折する → もっとわかりやすく説明してくれ → さっそうと Python が登
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く