Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事はobjc.io, Issue #16, The Power ofSwiftの日本語訳です。Swiftのパワー Issue #16Swift, September 2014 By Chris Eidhof まずはじめに、私は非常に偏っていることを認めなくてはなりません。私はSwiftが大好きです。私がCocoaのエコシステムに関わって以来起こったことの中で一番いい出来事だと思います。なぜそう思うか、それを私のSwift、Objective-C、Haskellの経験を共有することで伝えたいと思います。この記事で取り上げること

Googleで適当に検索すると とズラリと出てくる。 オブジェクト指向 v.s. 関数型プログラミング 関数型とオブジェクト指向という一見相反するプログラミングパラダイムの併用について理解した プログラマが知るべき97のこと/関数型プログラミングを学ぶことの重要性 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考える とそれなりに参考になりそうな情報はあるものの、無駄に複雑化されたオブジェクト指向をストローマンにするような記事ばかり(それだけ今までのオブジェクト指向にみんなうんざりさせられているのだろう)で、そろそろきちんと自分自身「関数型プログラミングとオブジェクト指向の切り離され方」についてはっきりさせておきたい、と考え、概念整理した結論を書きます。 まず端的な結論 結論を

As some one who has enjoyed the Lisp language (in several flavors) for about 15 years now, I wanted to express some of myreactions at recently discovering Haskell, and whyit has supplanted Lisp as theapple of myeye. Perhapsit will encourage others to explore this strange, wonderful world, whereit looks like some pretty damn cool ideas are starting to peek over the horizon. First, let me say
2010 年度 修士論文 日本語プログラミング言語における 関数型パラダイムの表現と 実装した言語“クロガネ”の開発 提出日 : 2011 年 2 月 4 日 指導 : 筧 捷彦 教授 早稲田大学 理工学術院 基幹理工学研究科 情報理工学専攻 学籍番号 : 5109B017-6 太田 大地 1 目次 はじめに...........................................................................................................................31. 日本語プログラミング言語..............................................................................................42. 2.1. 既存
LambdaDriver byyuroyoroRubyで、Procやlambdaで関数合成できるようにしたかったので、lambda_driver.gemというのを作った。 内容的にはこの辺で書いたヤツをgemにした感じ。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 「関数型Ruby」という病(3) - カリー化(Proc#curry, Proc#flip) - ( ꒪⌓꒪) ゆるよろ日記 こんな風に、カッコよくコードが書ける。 require 'lambda_driver' # [:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase } # [:foo, :bar, :baz].map(&:to_s).map(&:upcase) [:foo, :bar, :baz].map(

Refactoring is about `improving the design of existing code' and as such,it has been practised as long as programs have been written. The term refactoring specifically refers to a common activity inprogramming and software maintenance: changing the structure of a program without changingits semantics. Often, refactoring precedes a program modification or extension, bringing the program into a f
本書はHaskell、OCaml、F#、Scalaといった言語の普及により改めて注目される「関数プログラミング」の理論を体系的に学ぶ教科書"Introduction to FunctionalProgramming using Haskell"(Prentice Hall, 1998)の翻訳です。 関数プログラミングにおける評価戦略、データ構造、計算量、型、モナドの仕組みなどについて、Haskellによるシンプルなコードを例に解説しています。 訳者序文 第2版まえがき 教師への助言 謝辞 第1章 基本概念 1.1 セッションとスクリプト 1.2 評価 1.3 値 1.4 関数 1.5 定義 1.6 型 1.7 仕様 1.8 章末ノート 第2章 単純なデータ型 2.1 ブール値 2.2 文字 2.3 列挙 2.4 組(タプル) 2.5 その他の型 2.6 型シノニム 2.7 文字列 2.8

kmizu @kmizu 正直に言うと、Groovy自体は別に好きでも嫌いでもないのだけど、カリー化してないのにcurryとかいうメソッド名付けてたり(標準で)、概念の無理解が目立つ部分があって、その辺がちょっと…という思いがあったり。 #scalajp #groovy 2011-09-04 19:43:37

■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日本語(特に専門用語の日本語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first
About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 米国の大学進学無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...More... 最近のコメント Jessica Kirkpatrick on CLtL2 (2025/06/28)shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハ

The Visual Studio F# team is excited to announce a preview release of F# 3.0 as part of the Visual Studio 11 Developer Preview, announced on Tuesday at the //build/ conference. This preview is available now for all MSDN subscribers. The general release will be Friday at 10am PDT. The F# compiler will continue to be available as an independent installation, but that configuration is not part of thi

なぜ関数プログラミングは重要かでは、糊の重要さが強調されています。 問題を解くための部品プログラムを書くとき、その問題を部分問題に分割し、部分問題を解き、その解を合成する。元の問題を分割する方法は、部分解を張り合せる方法に直接依存する。それゆえに、概念的には問題をモジュール化する能力を高めるためにはそのプログラミング言語のなかで新たな糊の類を用意しなければならない。... 糊の重要性は、大工仕事との類比によって、正しく評価できる。椅子は、部分(座部、脚、背もたれなど)を作り、それらを正しくくっつけ合せることで容易に作ることができる。しかし、これはジョイントと木を張り合せるという能力に依存する。その能力がなければ、椅子を作る方法はひとつ木の塊からそれを彫り出す以外なく、非常に難しい作業になる。この例は、モジュール化の強大な力と正しい糊を持つことの重要性の両方を例示するものである。 僕が思うに
関数型言語での関数について、Haskell を用いて説明します。 関数の型 関数の型は、-> を使って書きます。例えば、Int を Char に変換する chr という関数の型は、以下のようになります。 chr :: Int -> Char 一引数の関数の型は、まぁこんなもんだと思えるでしょう。びっくりするのは、引数が増えたときです。たとえば、replicate という関数の型を見てみましょう。 replicate :: Int -> a -> [a] replicate は、第二引数で指定されたデータを第ー引数に指定された個数分用意して、リストにして返す関数です。([] は配列ではなく、リストです。) 次のように動きます。 > replicate 3 "foo" → ["foo","foo","foo"] a は型変数といって、任意の型を取れます。なじめない人は、具体的な型を当てはめてみ
FriendsOver the next few months I'm giving two or three talks to groups of *non* functional programmers about why functionalprogramming is interesting and important. If you like,it's the same generalgoal as John Hughes's famous paper "Why functionalprogramming matters". Audience: some aretechnical managers, some are professional programmers; but my base assumption is that none already know an
学び始めて最初っからずーっとなんですが、Scalaが従来の関数型に対してオブジェクト指向とのハイブリッドだと言われるのはどういう意味でなんだろう? という疑問がありました。 関数型言語でありながら、言語にオブジェクト指向機能があり、再代入が可能な変数がある、という機能的特徴だけ取り上げると、OCamlにScalaのような呼び名が与えられず、あくまで関数型と認識されている理由が説明できない。APIのデザインがOOPっぽいか関数型っぽいか、なんてのは、いくらでも作り変えられるから言語の本質じゃないし。なんてことを思っていたのですが、最近謎が解けそうです。 どう書く?.orgのナベアツ算をお題として、ScalaとOCamlを比べてみました。 http://ja.doukaku.org/233/ 「3の倍数と3がつく数字の時だけアホになる」コードを実装して下さい。 また、余裕のあるかたは更に、 「
Purely Functional Data Structures Chris Okasaki September 1996 CMU-CS-96-177 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy. Thesis Committee: Peter Lee,Chair Robert Harper Daniel Sleator Robert Tarjan, Princeton University Copyright c 1996 Chris Okasaki This research was sponso
関数型言語shの文法一覧です。他の関数型言語をある程度知っている人がこれを読めば、shの基礎をマスターしてshを書けるようになっています。以下、Clojureあたりを想定して説明します。 注意:これは基礎文法最速マスターねたのパロディです。動作は本物ですが、意味はコジツケです。 REPL shの処理系は、POSIX準拠のUnix系環境であれば標準で用意されています。REPLを起動するには、shを実行します。 sh すると、プロンプトが表示されます。 $ shのほかに、REPLに行編集機能を付けたbash・zsh・tcshなどもありますが、ここでは割愛します。 なお、REPLとして使うほかに、あらかじめ用意したスクリプトをshで実行することもできます。 sh hoge シーケンス shの扱うデータは、すべて、ある単位(ラインと呼びます)のデータが並んだシーケンスです。たとえば、seq関数(L
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く