IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
Semantic templates Handlebars provides the power necessary to let you build semantic templates effectively with no frustration. Mustache-compatible Handlebars is largely compatible with Mustache templates. In most cases it is possible to swap out Mustache with Handlebars and continue using your current templates. Fast execution Handlebars compiles templates into JavaScript functions. This makes th
簡単なクロージャの例として,引数にnを足す関数を生成する関数をC言語で考える.(詳しくはオブジェクト指向とクロージャ思考をご参照.) まずはお約束の#includeから. #include <stdio.h> #include <stdlib.h> やりたいことはSchemeで言えば (define (make-plus-n n) (lambda (x) (+ n x)))なのだが,レキシカルクロージャを持たないC言語では自前で変数をラップする必要がある.そこで,こんな構造体を作ってみる. struct make_plus_n_context_t { int _n; int (*_func)(const struct make_plus_n_context_t *, int); }; typedef struct make_plus_n_context_t MAKE_PLUS_N_CONT
ソフトウェア開発に Scala や Haskell、Erlang といった関数型言語を採用する企業が増えているそうだ (ITpro の記事より) 。 関数型プログラミング言語には「迅速に開発できる、バグを抑えやすい、アプリケーションの性能を向上させやすい」といった特徴があるとし、これらは新規のサービス開発に向いているという。「言語選定が競争力に直結」といった意見も記事には掲載されている。 これだけだといいことずくめのようにも聞こえるが、関数型言語は習得しにくく、ライブラリなども C/C++ や Java と比べるとまだ少ない。使いこなせるプログラマも少なく、関数型言語で大規模システムの設計を行えるエンジニアはまだ少ないのではないだろうか。関数型言語を使える人材はある程度スキルの高い人であり、そのために生産性が高いのではという疑問もある。今後日本で関数型言語の採用は進んでいくのだろうか?
僕は関数型プログラミングが好きだ。次の10年にかけてコードの革命を起こしていくだろうと考えている:言語はより関数型の機能を採用していくだろうし、開発者はより関数型の技術を導入していくだろうし、いくつかの点では、関数型プログラミングの原則はコードを組み立てていく上で「自然で」もっとも明確なやり方だとみんな考えるようになっていくだろう。 だけど、僕はもうこのシナリオを本気にしちゃいない。関数型プログラミングは、ワクワクするものを学ぶことに興味があると言っている主流のプログラマにとって明白な、大きな問題を抱えている:関数型プログラマーは自惚れ野郎どもだってことだ。 モナドって何?「モナドは自己函手の圏における単なるモノイドに過ぎないよ!(キリッ ヒャッハー、そんな単語も何一つ分かってないとか、君、おバカな主流プログラマーってやつじゃないかい?m9(^Д^)」 実用的なシステムを構築するのに役に立
Broadcast your terminal Project maintained by screenxtv Created by @tompng and @yasulab ScreenX TV enables you to broadcast your terminal. Show your live coding for a study session or hackathon. View on GitHub NOTE: We stopped hosting ScreenX TV server ScreenX TV hosted a server for easy-to-broadcasting your terminal. But it is now stopped for our lackage of resources to maintain it, so you need t
業務で使う関数型言語の第一回は、レコードについてです。 この記念すべき第一回は、F# Advent Calendar 2011 の1日目の参加エントリーにもなっています。 レコードとオブジェクト指向プログラミング言語におけるクラスを比べながら、どういう場面でレコードが使えるのか見ていきましょう。 クラスのおさらい まずは、クラスについてのおさらいです。 Java や C# などの言語に見られるクラスには、以下のような特徴があります。 いくつかのデータをまとめることができる メンバに対して可視性 (もしくは accessibility) を設けることができる 他のクラスを継承することができる 継承先で振る舞いを変更することができる インターフェイスを実装することができる 他にもあるでしょうけど、とりあえずこのくらいで。 次はレコードです。 レコードの特徴 レコードを、クラスの特徴と同じような
3月19日(月)に要求開発アライアンスのセッション『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』を行いましたが、説明を端折ったところを中心にスライドの回顧をしています。 「Domain-Driven Design (DDD)」として用意した以下のスライドを説明します。 セッションの全体構成は以下のようになっています。 関数型プログラミング Object Functional Programming (OFP) Object Functional Analysis and Design (OFAD) 応用 この中で4番目「応用」は、今OOADやクラウド・プラットフォームで話題となっている技術がOFADでどのような影響を受けそうなのかということを考えてみる趣旨のセクションです。 具体的に考えてみることで、OFADへのイメージ
ジャスミンソフトの贄(にえ)氏によるブログ記事「日本のSIerは"フィックスドプライス"型契約から脱却できるか」が興味深い。ジャスミンソフトは注目の超高速開発ツール「Wagby」のメーカーである。立ち場が似ていることもあって、私としては書かれていることがいろいろ共感できる。 業界の人間が集まると景気の悪い話ばかりだ。なにしろNTTデータのトップが「SIはもう終わり」と断言するほどである。しかしくどいようだが、SIビジネスは終わりっぽいが、業務システムそのものの必要性がなくなることはない。では何が起こっているのかというと、ユーザ企業の「丸投げ委託の削減」および「内製の強化」である。 贄氏も書かれているが、丸投げ受託ビジネスは誰も幸せにしない。ベンダーにとっては黒字になりにくいし、顧客にとっては業務システムがブラックボックス化しやすい。これに代わって「内製支援」が、この業界が開拓すべきフロンテ
アジャイル手法を実践できるプロジェクトは恵まれている。それは、「理解ある管理者」がアジャイル手法を了承してくれたからではない。管理者がそう判断できるほどに参加メンバーが優秀だからだ。 アジャイルの特徴のひとつが「少数精鋭」である。いっぽう、アジャイルの対立手法として理解されているウォーターフォール型手法では「人海戦術」で進められる点が対照的だ。じつは「少数精鋭」というのはアジャイルの特徴であるだけでなく、あまり触れられたくない弱点でもある。なにしろ「精鋭」しか関われない。 しかしアジャイル手法の推進者は、自分が優秀であることをそれほど意識していない。それどころか彼らは「いえいえ精鋭である必要はありません。じっさい私はアジャイルが大好きですが、凡庸な技術者ですよ」と自嘲的に語るだろう。そしてそれは本心でもあるだろう。なぜなら、彼らは「超」がつくほど優秀な技術者たちがいることをアジャイルコミュ
酔った勢いでアジャイルについて思うところを書く。 顧客に価値を届けるのは誰か 顧客に届く価値 = 目に見える成果物、という評価は、フロントに近い人間しか評価されなくなる傾向を抱え込む。顧客に価値が届くまでには段階がある。複雑なものほどワークフローが長大になる。お互いの価値を見積もれるのは、小さいチームでお互いの職種について理解がある場合の理想であり、多くの場合理想は理想である。大きなチームほど、フロントに遠い人間は自分の価値を伝えるのが難しい。 難しいことを難しいということ エンジニアが自分の仕事について、エンジニア以外への責任説明を果たそうとすると努力は必要だが、必ずしもそれが伝わるとは限らない。 難しいことを難しいと言えないと、「それってすぐできるんでしょ?」という展開になりがちで、「任せてくれ!」と言えるのはかっこいいが、誰しもがスーパーエンジニアではない。そして見積もりに失敗する。
ローンパターン Scalaでは関数をオブジェクトとして扱えるため、以下のような関数を考えることができる def withWriter(filename: String)(op: Writer => Unit) { val writer = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(filename),"UTF-8")) try { op(writer) } finally { writer.close() } } このwithWriter関数は以下の2つの引数をとる String 型のファイル名 Writer 型の引数を受け取り、Unit 型(つまり戻り値なし)を返す関数 withWriter関数内部では、指定されたファイル名でストリームを作成し、外部から与えられた関数にwriterを貸出し、その後、クロ
【ソウル聯合ニュース】米金融大手ゴールドマン・サックスが8日、韓国の今年の国内総生産(GDP)成長率予測を昨年12月に提示した3.4%から3.1%に引き下げた。 投資戦略家でもある同社のクォン・グフン専務はソウルで開かれた発表会で、引き下げの背景について「円安が続き、世界市場で日本と競う韓国企業の人気が相対的に弱まった」と説明している。 一方で「世界の景気が回復すれば韓国の輸出が伸び、韓国総合株価指数(KOSPI)も上昇する」とし、ウォン高・円安が続いても韓国経済にとって大きな問題にはならないとの見方を示した。 ウォンの対ドル相場については、先月13日を基準に3カ月後には1ドル=1080ウォンに下落するが、半年後には1ドル=1050ウォン、1年後には1ドル=1030ウォンまでウォン高が進むと見込んだ。 韓国の政策金利については、年内は据え置かれると見込んだ。ただ、この先円安が進む可能性があ
ロンドン(CNN) 英国などでハンバーグに続き、牛肉100%と表示された冷凍ラザニアなどにも馬肉が混入していたことが判明した問題で、スウェーデンの冷凍食品大手フィンドゥスは9日、原料供給元のルーマニアの業者を訴える方針を明らかにした。 フィンドゥスのフランス法人は、訴訟手続きを11日に取ると表明し、「当社も消費者も被害者だ」と強調した。 同社の英国法人も9日、ラザニアへの馬肉混入は意図的だった可能性が高いとして、供給元の訴訟を検討していると述べた。 英国ではこの日、関係閣僚や食品安全当局者、小売業者による緊急の対策会議が開かれた。パターソン環境相は「犯罪行為または重大な過失があった」との見方を示し、「さらに悪い知らせがあるかもしれない」と述べた。英当局は国内の食品会社に対し、牛肉と表示されたすべての加工食品を検査するよう指示していた。 ラザニアをはじめとするフィンドゥスの製品はこれまでに英
たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になり鬱になり死
田舎のタクシーに乗ったら運転手さんから政治の話を振られて面食らった――。そんな経験は無いだろうか。 今では想像できないけれど、一昔前まで政治はカジュアルな話題だった。それこそ天気や野球と同じように、初対面同士に最適だとされていた。新書や新聞、ドキュメンタリー番組が現在よりも好まれており、政治へのリテラシーが高かった。さらにマスメディアが情報を統一していたため、政治的立場が対立することはまず無かったのだ。情報ソースが多様化した現在、政治の話はあまりにもコントラヴァーシャルで軽々しく口にできない。初対面の相手とだなんて、もってのほかだ。 しかし、である。 社会問題や経済、政治に無関心な“ふり”をするのが処世術になってしまうのは危険だ。それらが地震や台風のように「関心を払っても防ぎようがない」ものとして扱われるからだ。当たり前だけど、あらゆる社会問題は人間が巻き起こすモノ。である以上、私たち一人
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く