復習 Ruby: [1, 2, 3].sum ではなく,[1, 2, 3].inject(:+) と書く. 数値が Array に格納されていて,その合計を計算したいときに sum したくなることがある. たとえば,次のように. a = [1, 2, 3] a.sum # ~> -:2:in `': undefined method `sum' for [1, 2, 3]:Array (NoMethodError) しかし,このように,Array#sum というメソッドは無いので,NoMethodError になる. Enumerable#inject(symbol)こんなときに,Ruby なら Enumerable#inject(symbol) を使う. a = [1, 2, 3] a.inject(:+) # => 6 ここで,a.inject(:+) は, 1 + 2 + 3 と同じ
プログラミング言語がロジックを組むのに向いているかいないかを判断するときの基準に、私はよく「文字列の操作が優れているか否か」「配列・辞書・集合の操作が優れているか否か」を評価点に挙げます。文字列や配列、辞書、集合の操作はほとんどすべてのアプリケーションで必要になり、それらの生産性が高く高速に処理してくれる言語ほど簡単で高速なロジックが組めると思うからです。 そういう意味でObjective-Cを考えると、文字列の操作はまぁまぁ良い(特にUnicode周りがなかなか優れている、正規化もできるし)のですが、配列・辞書・集合の操作がイマイチで、作るの面倒なら操作するのも面倒。さらには良く欲しくなる以下の操作が欠けています。map - 条件式を渡して、もとの集合の各要素に条件式を通した結果を新たな集合として返す。 reduce - 条件式を渡して、要素を前から順番に計算して畳み込み、集合から一つの
下のリンクをクリックするとリストになったメニューが出現し、もう一度クリックすると引っ込みます。 この例ではJavaScriptがオフの場合にそのメニューのある別ページにジャンプします。 自作JavaScriptサンプル よくあるJavaScriptサンプル <script type="text/javascript"><!-- function oritatami(id){ obj=(document.all)?document.all(id):((document.getElementById)?document.getElementById(id):null); if(obj) obj.style.display=(obj.style.display=="none")?"block":"none"; } //--></script> <a href="URL" onclick="ori
hs-minor-modeというのがあるらしい。 ここを参考にemacselを変更。 Dadakusa Log: Emacsでソースコードの折りたたみ ブロックの中でC-\を押すと折り畳める。 (add-hook 'c++-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'c-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'scheme-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'emacs-lisp-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook 'lisp-mode-hook '(lambda () (hs-minor-mode 1))) (add-hook
DescriptionFolding mode is a MinorMode that uses a special string to find the regions to hide: {{{ and }}}. The variable fold-mode-marks-alist defines the strings for each MajorMode separately. From the folding menu you can enter, show, hide, etc. regions. With the Mouse-3 (the rightmost mouse button) when there is no other context menu defined a right mouse click will toggle the visibility of fol
'* Core 標準モジュール *' Option Explicit Private xList As List Private xProgram As Program Property Get List() As List Set List = xList End Property Property Get Program() As Program Set Program = xProgram End Property Function Box(ByVal v As Variant) As Box Set Box = New Box Box.Value = v End Function Sub Init() Set xList = New List Set xProgram = New Program End Sub '* List クラス モジュール *' Option Explici
emacsでコードフォールディングするのに、以下の設定でfold-dwim.elを使っています (global-set-key (kbd "<f7>") 'fold-dwim-toggle) (global-set-key (kbd "<M-f7>") 'fold-dwim-hide-all) (global-set-key (kbd "<S-M-f7>") 'fold-dwim-show-all) 便利なんですけど、メソッドがたくさんあるクラスをフォールディングすると、メソッドが全部隠れるので、クラスのアウトラインを見たいというときにうまくないです 例えば を でなく にしたい 対応 hideshow.elの hs-hide-level (C-c @ C-l) でできました。 hideshow.elはemacsに標準で含まれてますし、fold-dwim.elからrequireされているの
reduce() メソッドは、配列の各要素に対して (引数で与えられた) reducer 関数を実行して、単一の出力値を生成します。 このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。 reducer 関数は 4 つの引数を取ります。 アキュムレーター (acc) 現在値 (cur) 現在の添字 (idx) 元の配列 (src) reducer 関数の返値はアキュムレーターに代入され、配列内の各反復に対してこの値を記憶します。最終的に単一の結果値になります。 構文 arr.reduce(callback( accumulator, currentValue[, index[, array]] ) {
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
いちいちfor文を書くのに疲れてきたので、書いてみた。 ノーコメントですまそ。 map, filter, foldを実装。 /** * High-order functions for Java collections. */ public class CollectionUtil { public static <T0, T1> List<T1> map(Collection<T0> collection, Function<T0, T1> each) { List<T1> result = new ArrayList<T1>(collection.size()); for (T0 element : collection) { result.add(each.apply(element)); } return result; } public static <T0> List<T0>
2007年05月28日03:30 カテゴリ一日一行野郎 Code Snippets - reduce(l|r)を実装汁! FizzBuzzにももうええかげん食傷してきたので、次のネタをないかと思ったら、yuguiさんがtwitterで私を登録したので、ごぶさた〜と思ってblogを見に行って格好の素材を(再)発見したという前回までのあらすじ。 inject + Symbol#to_proc = fold @ 2007年05月 @ ratio - rational - irrational @ IDM (1..10).inject(&:*) => 3628800 うーむ。素晴らしい。 reduce(l|r) というわけで問題。reducelとreducerを実装せよ。制限時間はあわせて10分。ただし、reducelとreducerは、Haskellにおいて次の挙動を示すものとする。 *Main
A4用紙を三つ折りにする際など、「もう少しキレイに折れたらいいのに……」と思ったことはありませんか?手紙や地図の上手な折り方、1枚の紙を折るだけでできるCDケースなど、便利な“紙の折り方”を紹介します。 ■ “手紙”の折り方いろいろ 手紙を三つ折りにしようとしたものの、上手くいかず余計な折り目を付けてしまうことはよくあります。一発でキレイに折る方法はないのでしょうか? ▽ A4用紙もキレイに三つ折り 便利な「手紙の折り方」を試してみた - はてなニュース 上記エントリーでは、封筒がないときにも便利な折り方や相手が開封した際に読みやすい折り方のほか、“A4用紙を三つ折り”にするコツを紹介しています。同じ大きさの紙を1枚用意し、折るほうの紙を縦に置き、その上にもう1枚の紙を横にして左上の角を合わせるように置きます。すると下の紙のおよそ1/3がはみ出すので、折る際の目安になります。 ■ 地図に便
LISPUSERLISPMEMOLisp is like a ball of mud - you can throw anything you want into it, and it's still Lisp. -- Anonymous 404 Blog Not Found:Code Snippets - reduce(l|r)を実装汁! ネタ。 Common Lisp には標準であったので話にならなかった。10 分を切れてよかった。 (defun reducel (fn lst) (reduce fn lst)) (defun reducer (fn lst) (reduce fn lst :from-end t)) つまらないので Prolog 版。うむ、やっぱり Prolog はいい。call で高階関数も使えるし(funcall が許せない人には不評かもしれないが)。 % red
2014-07-26 Python: wxFormbuilder を使ってwxPythonアプリを作る。 Python wxPython wxFormBuilder PythonとwxPythonのGUIビルダwxFormBuilderを使って、テストアプリを作ってみました。 なぜ、wxPython なのか。 wxWidgets を使っていますので、Windows、macOS、Linux で動かすことが出来るからです。 【環境】 Python 2.7.8 wxPython 2.8 wxFormbuilder 3.… 2014-07-25 Python: win32com を使ってDBにADO接続してみる。 Python MS-Windows COM SQL server Python and ActiveX Data Objects (ADO)を参考にMS AccessのMDBにアクセスし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く