・型指定がめんどい ・クロージャーがない ・コードが長くなる ってことで、早くJava言語からScalaに移行が進んじゃえばいいと思います。
2008年02月20日16:00 カテゴリLightweight Languagesアマグラマーのすすめ 私がJavaScriptを初心者用の言語として選んだわけ アマグラマーのすすめが止まっていて一部の読者を絶望させて申し訳ありません。他の本を先に出さないといけないというのがその理由なのだけど、いい機会なので、 2008-02-20 - きしだのはてな デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJavaScriptがいいと言っていて、ぼくも同じような理由でいいと思って初心者の勉強にJavaScriptを使ってみたことがあるのだけど、実際にやってみるとかなり難しいと思ったので、そのことをまとめておきます。 への返答の形で、なぜ私がJavaScriptを選んだのかをまとめておくことにします。 まず比較的明らかな理由。 インストール不要の開発環境 ブラウザ
Add to Cart Produk ini tidak dapat dibeli karena bermasalah. Silahkan hubungi kami. Dalam dunia perjudian online, slot gacor menjadi salah satu permainan paling populer yang digemari oleh berbagai kalangan. Dengan mekanisme sederhana dan peluang menang besar, slot kerap menjadi pilihan utama bagi pemain baru maupun berpengalaman. Salah satu platform yang sedang naik daun dan menarik perhatian para
2006年03月15日02:38 カテゴリLightweight Languages javascript - Lambda Calculus ClosureさえあればLambda Calculusは実現できるので、当然Javascriptでも出来る。 にも関わらず、検索してもあまり実例がなかったので一つ作ってみた。 Source: // define var zero = function(f){ return function(x){ return x}}; var succ = function(n){ return function(f){ return function(x){ return f(n(f)(x))}}}; var add = function(m){ return function(n){ return function(f){ return function(x
The Prototype, Sam Stephenson氏は25日(米国時間)、Prototypeの最新版となるPrototype 1.6.0.2を公開した。PrototypeはJavaScriptで開発されたAjax Webアプリケーション開発フレームワーク。The MIT Licenseのもとで公開されており、2007年版Ajaxianの調査によるとscript.aculo.usとともに相変わらず高い人気を誇っている。 Prototype 1.6.0.2はいくつかの互換性問題とパフォーマンス問題を改善したバージョン。またWebブラウザ環境以外の環境でPrototypeを使った場合に存在する潜在的なセキュリティ問題への対応が実施されている。28のバグが修正されているほか、コードベースに対する改善が実施されている。またSafari 3におけるCSSセレクタの改善、すべてのWebブラウザに
ライバル同士がタッグを組む理由 マイクロソフトとヴイエムウェアが連携し パブリッククラウドへの移行を支援 クラウドネイティブの実現 モダンインフラの構築・運用の課題解決へ コンテナの可能性を広げるVMware Tanzu サーバースペシャリストへの道 PCサポートとサーバ管理の共通項 ひとり情シスのためのスキル向上のコツ IT部門のDXはこれだ! IT運用管理新時代における最適な運用管理 の現場作り ビジネスの推進には必須! ZDNet×マイクロソフトが贈る特別企画 今、必要な戦略的セキュリティとガバナンス 自社利用の知見・経験を顧客に提供 コンテナ活用を推進する日立製作所 VMware Tanzuを利用したモダナイズを伝授 今を知り、未来を見据える 培ってきたノウハウを最新技術へ対応させる レガシーシステムのモダン化実現への道 デジタル時代のITインフラ構築術 仮想化統合、クラウドを経て
このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま
前回は、JavaScriptにおける関数はオブジェクトであり、関数定義は「オブジェクトの作成」に他ならない、と言うお話でした。今回は、「では、JavaScriptにおけるオブジェクトとは何か?」というお話をしたいと思います。 JavaScriptオブジェクトとは「ハッシュテーブルのようなもの」 オブジェクト指向言語における「オブジェクト」とは、「データと振る舞いをひとまとまりにしたもの」として説明されることが多いです。例えばJavaのオブジェクトは、フィールド(=データ)とメソッド(=振る舞い)から構成されます。 しかし、JavaScriptにおける「オブジェクト」の概念は、ある意味それより遥かに単純です。なぜなら、誤解を恐れずいうならば、JavaScriptオブジェクトとは、単なる「ハッシュテーブル」のようなものとして捉えることができるからです(※1)。 ハッシュテーブルとは、「キーと値
オープンソース活用はあたりまえ! そんな今だからこそ改めて考える 企業ITにおけるOSS活用のメリットとリスク ものづくり現場の情報セキュリティ インダストリー4.0は製造業の変革期 工場のデジタル化によるリスクへの対応 コンテナをエンプラITに! コンテナ活用の基礎 本番実装が増える背景とメリット デジタル時代のITインフラ構築術 仮想化統合、クラウドを経て今「マルチ」へ ITインフラの最適化と継続的進化への道筋 IT部門のDXはこれだ! IT運用管理新時代における最適な運用管理 の現場作り EDRトップランナー対談:後編 セキュリティ戦略を転換せざる得ない背景と EDRのような手法が必要な理由に迫る 非構造化データのデジタル活用へ 社内の文書コンテンツを一元管理 デジタル変革と内部統制の二兎を得るECM 結果に差がつくウェビナーへの投資 デジタル営業時代における見込み顧客獲得へ ウェビ
JavaScriptをより深く知りたい人のための当連載、今回が四回目です。 前回は、JavaScriptのオブジェクトは「ハッシュテーブルのようなもの」として捉えることができ、「[ ]」演算子と文字列の組み合わせでメンバにアクセス可能である、と言うことを説明しました。 今回は、JavaScriptオブジェクトについてさらに高度な話題として「オブジェクトリテラル」と「JSON」についてお話ししたいと思います。 オブジェクトリテラルとは オブジェクトリテラルとは何か?を説明するためにも、簡単に前回の復習をしましょう。 前回は、「JavaScriptオブジェクトはハッシュテーブルのようなものだ」と言う前提のもとに、生成したオブジェクトに対して変数や関数を追加し、参照すると言う例をお見せしました。 // 新しいオブジェクトの作成 var obj = new Object(); // メンバーとして
全世界22万以上の企業・組織で採用 DX時代の顧客価値創出に大きな役割を担う CI/CD環境の現実解を紐解く オリジナルコンテンツが満載! 意外と知らないNutanix HCI の情報を集約 読めばわかる!いまHCIが注目される理由 これからの社内DX 真のDXのため、まずは社内のデジタル化を DXのファーストステップのヒント MSセキュリティ担当者が紹介 マルチクラウド環境の保護を追求する Microsoft Defender for Cloud 今時プライベートクラウドの作り方 2020年代のプライベートクラウド環境を AzureとVMwareを例に紹介 注目急上昇中のDaaS最新情報 コロナ禍を背景に利用者と機能を拡大中 Azure Virtual Desktop最新情報 ID管理の基礎知識 新しい働き方におけるITガバナンスの 向上にむけて エッジ市場の活性化へ 高まるIoTを中心
要素をランダムに並べ替えるFisher-Yatesというアルゴリズムを可視化してみた。 下のウィンドウをマウスクリックすると並び替えの様子がアニメーションされます。 後ろから走査していって、自分より前のどれかと交換していく訳ですね。 計算量はO(n)です。 package{ import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; import caurina.transitions.Tweener; [SWF(width="400", height="200",backgroundColor="0xffffff")] public class FisherYates2 extends Sprite{ private var balls:Array = []; priv
久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ
擬似コード記述のような、説明に使える“動く”プログラミング言語を探していて、一時はGroovyを候補に考えていました。が、最近はJavaScriptでいいやと思ってます。実際、ゲーデルの不完全性定理の説明にはJavaScriptを使ってるし。 構文のフレーバは伝統的な手続き型なので、説明なしに誰でもだいたい理解できます。 print("Hello world.");これをみて理解に苦しむ人はいないでしょう(もっとも、ブラウザで実行すると理解に苦しむことになるが(苦笑))。説明が必要でも、JavaScripの構文解説ならいくらでもそこらにありますし。 function式があるので、生のラムダ式の代わりにJavaScriptが使えます(なんならこれを参照)。メソッドも関数でラップできますから、そうしたいなら、純関数的に書くこともできます。 functio apply(func, args) {
「もっとかしこいカリー化」で紹介した、nanto_viさん、kilreyさん、KENZさんのコードはいずれも、ラムダ式によるカリー化の表現と正しく対応しています。最初からラムダ計算で考えればよかった。「なんでそんなことに気が付かないんだ?」と言われそうですが、それはですね; 僕みたいに後知恵で理屈をこねるヘタレと、直観で判断しても正しい結果を得るエキスパートの違いですがね。テキスト処理の方法を思いついたら、そのまま無反省にやってしまったよ、僕は。<<実は脊髄野郎だろ で、以下、後知恵でヘタレ理屈こねます、コネコネェ。 内容: JavaScriptからfunctional風疑似言語へ 多変数関数のラムダ計算: 構文の定義 あらためてカリー化の定義 ラムダ計算規則と計算例 curry関数がカリー化になっていること 補足または蛇足 自分的には、式のモーフィングがニャンカ面白い。 ●JavaScr
引数束縛 (カリー化) の話。まずは「JavaScriptでカリー化」(檜山正幸のキマイラ飼育記)。タイトルを見てどこかで聞いたような話だなと思ったら「関数の変形」(Effecttive JavaScript - Dynamic Scripting) だった。だが、前者は文字列に戻してから評価というのが力技っぽくて個人的に好きでないし、後者は汎用的過ぎていささかわかりにくい。そこで今回は先頭の引数から束縛していくというのに的を絞ってみたいと思う。 まず第 1 引数のみを束縛する場合。Function#apply を使えば引数を配列として渡せるので、束縛された値と後から渡された引数とを連結してやればいいのではないか。 function curry(func) { return function (first) { return function () { var args = Array.p
id:m-hiyamaさんへ、(メソッドではない)関数のCurry化ならテキスト処理無しで出来ますよ、と。 function curry(func){ return function(x){ return function(){ var args = new Array(arguments.length+1); args[0] = x; for(var i=1;i<args.length;i++){ args[i] = arguments[i-1]; } return func.apply(null,args); }; }; } function sum(x,y){ return x+y; } alert(curry(sum)(10)(15)); alert(curry(sum)(10)(15,20));追記) 任意個のcurry化を綺麗に書くとこうなる。 function curry(f
来たよ、来ましたよー。 僕がJavaScriptやブラウザの話を書くと、誤解・誤認の指摘や役に立つ情報の提供が、コメントやトラックバックで来ます。 (http://d.hatena.ne.jp/m-hiyama/20051210/1134187007)このジンクス(?)は正しかった。 うーん、テキストつぎはぎは、やっぱダサイな -- いいんか? これで (http://d.hatena.ne.jp/m-hiyama/20051213/1134446855)と、カリー化するのに、関数ソーステキストをいじくり回すってのは、いくら何でも汚すぎるとは思っていたのですが、、、 まずは: http://nanto.asablo.jp/blog/2005/12/13/176033 nanto_viさん、これはカッコいい(クール!)です。ちなみに、nanto_viさんは鋭く役に立つコメントをくださる方です
JavaScriptでカリー化。ありがち、つうか実際にあるでしょうね。小ネタと思ってやりはじめたら、意外と混乱した。一種のメタプログラミングのはずだが、実際にはテキスト加工処理。 内容: カリー化ってなに? カリー化を行う関数を作る:準備 カリー化を行う関数を作る:テキストのパッチワーク カリー化を行う関数を作る:組み立て ●カリー化ってなに? 2引数の関数f(x, y)に対して、「gがfのカリー化」だとは、f(x, y) = g(x)(y) が常に成立すること -- ゴチャゴチャ説明するより実例実例: functio sum(x, y) { return x + y; } このsumのカリー化の例: function curried_sum(x) { return function (y) {return sum(x, y);} } curreid_sum関数は1引数で、戻り値として関数
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く