「連想配列」を含む日記 RSS

はてなキーワード: 連想配列とは

2021-01-25

anond:20210125120116

連想配列ゆうてforeachで回すのがintからint*になるだけで内部的な処理かてi++がi+4 になるだけやからそれだけだと等価っぽくない?

anond:20210125115925

foreachは連想配列を含むから

連想配列実装データに対して、多様にある場合がforに比べて多い

そのため主題に対して例外が多いため、あくまでも、議論には不適切というだけ

anond:20210125102322

HP場合データ構造特殊で、すべてが連想配列なんだよ。

for で間接的にアクセスするより、foreach での直接アクセスのほうが速くなる。

そいう言語も世の中にはあるってこと。

2021-01-18

Laravel

なぜ人気なのかわからない。

PHPあるあるだけど、型の扱いとか含めてひどい…。

Laravel に限らず Pusher のライブラリも、@return bool のくせに連想配列かえすパターンあったりとか諸々ひどい。

2020-08-20

anond:20200820125553

PHPer とかは何でもかんでも連想配列でやるから嫌い。型がないの気持ち悪い

anond:20200820125500

今どき連想配列が無い言語を使おうってのがアウト

2020-07-31

anond:20200731155404

センスと言うより、場数とか経験かに見える。

自分プログラムを書き始めた数十年前の自分ならこういうデータとして扱うのが超面倒くさいコードを平気で書いたかもしれないけれど、今は一瞥してそれで渡されても取り扱えるけれど、自分だったらそうは設計しないなとは思う。

そもそも連想配列/辞書を作ってJSON読み書きはライブラリーやらせからJSON設計がーという発想もそんなにない。

anond:20200731155404

そのタイプは常にビューをデータ構造表現してきたり、常に連想配列使ってきたりとにかく使い分けができない印象。まぁ学習が足りないが結論なのではという気もする。

2020-06-01

コンピュータープログラミングの分野でリストといった場合、通常リンクリスト 連結リストのことをさすが 何も言わなかった場合に連結リスト以外の事をさすと教えているスクールがあるということだろうか

連想配列技術を応用した連想リスト(次の要素へのポインタアドレスではなくキー値)というものもあるだろうが、原理は同じだから、教えるとき弊害にはならずハードウェア物理アドレス仮想アドレスを渡すか、アプリ内部のキーを渡すかの差だけで、そこまで違いがあるわけではない。アルゴリズムとしては同じだ。何が弊害になったんだ?

2020-03-29

[]演算子はだいたい関数

引数を取り結果を返すという意味演算子はだいたい関数と同じものである

演算子オペレータ)は被演算子オペランド)をとって式を構成する。

「1 + 1」「5 - 3」「 1 == 3」等の式はplus(1,1) minus(5,3) equals(1,3)といった関数の言い換えである理解できる。

値を返すものが式である

引数をとり値を返すもの関数である

式の中の特別もの関数だと言える。

Wikipediaによると、関数写像であるという。

写像英訳mapという。

プログラミングにおいてマップマッピングとは

まあだいたい「〇〇は□□と対応してる」という関係を指す。

連想配列とか。

まり関数マップであり、

連想配列マップであり、

まり連想配列関数である。だいたいのところ。

2019-04-07

日曜日が終わってしまうので、ここらで一発、何らかの生産的な行動をやっていきたいぞ、と思ったわけですけども、なぜかこうして増田に張り付いています

人はなぜ、このような選択をしてしまうのでしょうか。

前頭前野の敗北であり、辺縁系勝利です。勝利勝利、大勝利長良辺縁系ではありません。

なぜか私のPCデスクには知恵の輪が転がっています。なぜでしょう。お見舞いでもらった品です。なぜ知恵の輪。ボケ防止にとのことでしたが。

ところで、先程PCデスクと言いましたが、これは厳密に言うと、いえ別にそんな厳密とかじゃなくて普通に言ってそうなんですが、私が今パソコンを置いている場所は、PCデスクなどという大層な代物ではありません。

というかデスクですらありません。

私は椅子の上にディスプレイキーボードマウスを置いています

正確には、椅子の上に、ホームセンターで買った合板を乗せて、それを机とし、周辺機器を乗っけているのです。

これは案外便利です。広い、安い、手軽、収納やすい。見た目のアレさにさえ目をつむれば、非常に合理的選択であると言ってよいでしょう。

あるいは、見た目などという些事に囚われていないことが、余計に合理的選択であることを強調している、とさえ言ってもよいかもしれません。

ところで、さっきまで、やむを得ない事情により、VBAなる恐ろしい言語を使っていたのですが、これには様々な謎仕様があるようです。それらは名状しがたき恐怖で我々を戦かせます

一般的に知られていると思われる謎仕様と致しましては、例えば、配列におけるReDimなるステートメントが上げられるでしょう。

他にも、例えばマクロ高速化のための方策として、範囲配列に代入するというテクニックが紹介されることがありますが、この配列範囲との間にも謎の関係性が存在しています

この手のソフトウェアを扱うに当たり、いちいち一つずつセルに値を書き込むことはご法度、というのが定番ではありまして、私も素直にこの定石にしたがい、セル範囲二次元配列に格納したりしております

しかし、範囲配列に代入した場合、その配列の要素のインデックスは、どうも1から始まるようなのです。

なぜ1スタートなのでしょうか。VBA仕様においても、配列の添字はいちおう0から始まることになっているのですが、範囲配列に格納した場合、0行0列の要素は空となっており、Array(1,1)にRangeの始点の値が格納されております

まあたとえ1スタートであっても、言語内で仕様統一されているのであれば、まだよいのです。

しかしここが彼の言語の恐怖ポイントなのでありまして、どういうことかといいますと、

すなわち、今度は逆に配列範囲に代入、すなわち配列の各要素の値を対応する範囲セルに書き込む場合インデックスが0である要素から順に処理されるのです。

範囲配列に代入するときインデックスが1から始まるのに、配列範囲に代入するときインデックスが0から始まるのです。

Array = Range

Range = Array

とすると、一番上の行と一番左の列が、空白行、空白列になってしまうのです。

なんですかこれは。誰が考えたんですか。おかしいでしょう。私はおかしさのあまり死にました。

この理不尽さに比べれば、Collectionなる連想配列の添字が1から始まることなど些事に過ぎません。

昨日までJavaJavaしていた人は、どうやら配列なんぞには目もくれていなかった様子でしたので、この謎仕様に気づくこともなかったのでしょうが、悲しいことに、この謎仕様配列を用いた高速化テクニックはほぼ必須スキルでありますので、例の御人も、遅かれ早かれ、この罠に絡め取られていたことでしょう。

あるいは、この謎現象回避するための方策はきちんと用意されており、無知な私はそれを知らないがゆえに、このような的はずれな不満をぶちまけているのかもしれません。

しかし、上述したような単純かつ直感的な代入が上手くいかないという仕様は、やはり、なかなかの欠陥ではないかと思うわけです。

まあそんな愚痴はどうでもいいのです。変な仕様適当にハックしてやればよいのです。

でもクラスモジュールとやらのパワーは貧弱なのでそれも大変困難ではあります

標準モジュールライブラリもどきをちまちまと作っていくしかないのでしょうか。

とてもではありませんが、こんなもんを極める気にはなりませんので、そこら辺のことをいい感じにまとめてくれている知見があればよいのですけれども、しかし、まともな人間はこんなもんを相手にしたりはしない、というパラドックスがあります

https://sites.google.com/site/compositiosystemae/home/vbaworld/upper/interface はわりとよかったような気がします。システムハンガリアン使ってますけど)

こんなもんを扱わざるを得ないような環境に留まってしまっている私がおかしいという話もあります

悪いことは言いません。pythonで書かせてください。お願いします。

そんな増田の切なる願いは、社会という名の抗いがたい泥沼に絡め取られ、今日も悲しみに満ち満ちたコードを生成していくのであります

そういえば今日休日でした。休日普通楽しいものなのではないでしょうか。どうしてこんな悲しい気分になっているのでしょう。

答えは簡単でして、悲しいことを書いているからです。楽しい気分になるには、楽しいことを書く必要があります

楽しいこととは何でしょうか。例えばオナニーなどが挙げられます人生において、オナニーよりも楽しいことは、あまりありません。

よって、楽しくなるには、オナニーの話をすればよいです。

私は一時期、DLditeで同人音声を漁っておりまして、催眠に掛かるべく邁進していた時期もありました。

しかし一度も催眠に掛かれませんでした。

なぜ私は催眠に掛かれないのか。

集中力の欠如、衝動性の強さ、慢心、環境の違いなど、様々な要因が考えられますが、最も大きな原因と思われるのは、台詞めっちゃ気になることです。

おっさんが考えた可愛い二次元女の子みたいな台詞が、えらく癇に障るのです。

そのために、可愛らしい女性の声に没頭できないばかりか、声によって現実に引き戻されてしまう、という逆説に襲われるのです。

おっさんは蓮を咲かせる泥だという話もありますが、恐らく、真に良質な泥おっさんというのは、非常に稀な存在なのでしょう。

まり、いいおっさんは泥ですが、悪いおっさんゲロということです。

しかし、これもおっさんに限らず、大抵のことに言える話でありまして、良質なものはどこでも少ないものです。

生の増田を見てもそうでしょう。

ホッテントリに上がる増田しか見ないライト増田、あるいはブクマカには想像もできない世界が、生の増田には広がっています。例えばこの増田とかです。

(これは私見ですが、VIPやなんj、あるいは虹裏などと比べても、増田の毛色は違います

増田ほとんどは泥であり、ホッテントリに上がった増田は花なのです。

私も泥として、増田たちに養分供給していきたいと思います

何だかまた悲しい話になってるじゃないですか。なぜ私はいつも悲しい話をしてしまうのですか。

それは恐らく、心の通奏低音(俗用)のようなものが、悲しみに染まっているからです。

基本的に悲しんでいるので、無意識に任せて話すと、悲しい話ばかりが飛び出てくる、というわけです。

この休日も悲しいまま終わりそうです。恐ろしい恐ろしい。これも人生という感じですね。

2019-02-23

anond:20190223045232

perlでは連想配列

しかし、この話を読んでJavaだけ違うよなって思ってしまった。他のはみんな実装言語処理系にお任せだけれど、JavaだけはMapは単なるインタフェースで、どの実装にするかはお前が選べってところがねぇ。こいつだけはGenericsを使って、keyvalueの型を指定するのも違う。

Javascriptはプロトタイプベースオブジェクト指向言語から、こいつもこいつで思想が他のと違うんじゃないかとも思えてきた。

2019-01-30

anond:20190130113420

それ構造体でも連想配列でもいいじゃねーか

なんでオブジェクト必要なんだ

とは考えなかったんだろな

2018-06-23

anond:20180623001414

データをどう使うかによるのでは?

ほげとひげとはげ、ホゲとヒゲハゲがそれぞれ別のペアとして使われるなら、前者がいいんじゃない

例えば、こんな感じなら、前者の方が配列の中からその連想配列を見つけてそれだけを見れば済むので楽な気がする。

[{bald: "はげ", language: "japanese"}, {bald: "calvo", language: "italian"}, {bald: "chauve", language: "french"}...]

for文でlanguageが希望のものになるまで配列をたぐってから、baldの値をとってくればいい気がするし。

これが後者方式だと、for文で回した後にそのインデックスが何かを覚えておいて、baldの配列からそのインデックスで探すことになるから一手間かかるかな。

それに、前者の方法ならもしハゲが無いけどヒゲならある言語がある場合ヒゲだけ値を入れておけばいいという気がする。

特に配列の要素ごとにまとまりが無いなら後者データ構造の方がいいかな。

データ転送量は圧縮すると同じ文字列辞書に載って短い符号で送られるだろうからまりペナルティーは無いのかもしれない。

2018-02-17

paizaのスキルチェックやってみた所感

はてなユーザーには馴染み深いであろう、「SIerへのdisり」で有名なpaizaのスキルチェックをやってみた。

ちなみに、私は現在SIerに勤めており、最近仕事への不満が高まっているので、転職を考えている。

といって別にSIerが憎いわけでもないし、paizaのポジショントークはどうかと思っている。Web系に行きたいわけでもない。

ただ色々な転職サイト登録してる流れでpaizaも登録したので、せっかくだしプログラミングスキルチェックをやってみた。

スキルチェックするにはプログラミング問題を解けばいい。問題にはランクがあり、難易度順にS,A,B,C,Dの5段階。問題を解くと100点満点で評価される。

得点は「テストケースに通るか?」と「時間内に解けたか?」で決まり、各ランク問題で81点以上とれば、自身のpaizaランクが上がる。(paizaランクはS~Eまで)

問題は多数用意されているが、1問でも81点以上取ればランクが上がるので、ランクアップのハードルは低い。しかランクが落ちることもない。

で、全ランク問題を解いてみた所感は以下。

D 問題未満。文法を知っていれば解ける。

C 易しい。連想配列とかソートが使えれば解ける。

B 普通。稀にひらめきが必要問題もあったが、特にわず解ける。

A やや難しい。自分能力不足かも知れないが、少し実装が込み入ってくる。しかし解けないものは無い。

S 難しい。解けない問題もある。愚直に解くと計算量が多すぎたり。アルゴリズム知識必要だったり。

Aランク以下の問題はほぼ全て81点以上(というかほとんど100点)だったので、全体的な難易度は低い。

「高ランクだと企業からオファーが来ます!」っていう触れ込みだけど、最近業務ワードエクセルしか触っていない私でもこんな感じなので、単なる足切り程度の意味しかない気がする。

ただ、問題バリエーション豊かだし、けっこう楽しめた。転職には使えそうにないが、暇つぶしには良いと思う。

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-05-24

http://anond.hatelabo.jp/20170524200524

C#書いてて多次元連想配列必要になるケースが少ない。

Dictionary<string, Dictionary<string, Dictionary<string, string>>>

とか絶対ない

C#連想配列がショボい

なんでこんなにショボいのに使われてるんだ?

PHPとかjavascriptみたいな多元連想配列が使えなくて意味分からん

2017-04-06

http://anond.hatelabo.jp/20170406081854

現役ペチパーだけど、元々PHPHTMLスクリプトを埋め込むところから始まった変態言語なので、

普通に関数を作って組み合わせてしまえば大半は事足りるのも当然なんだけども。

実務で使うと便利だなと思うのは、まとまりのある複数変数メソッドを1つのクラスカプセル化できること。

例えば、ユーザ情報管理するときに、「ユーザ情報」というクラスを作って、

その中に publicな変数として、名前フリガナ郵便番号、住所、電話番号、会員ID階級職業性別

を放り込んでおく。

同時に、ユーザ情報の処理に関連する処理の関数を public なメソッドとして、定義する。

ユーザ情報をタブ区切りで得るメソッド getTABDATA()

フォーム入力からユーザ情報にセットする setFromForm()

ユーザ情報が正しく入ってるか評価する Validate()

こうしておけば、

ユーザ情報を何かの関数に渡す時は、インスタンス変数1つ渡せば済む。

ユーザ情報に関する処理は、ユーザ情報クラス定義部を観れば済む。

という2大メリットが得られる。

そんなのPHPなら連想配列変数はまとめられるし、

メソッドだってつのファイル関数並べてインクルードすれば同じメリットが得られるやん?

…と私も思ってた。ただねぇ、開発規模が大きくなると、関数名の重複を避けた命名が面倒になったり、

連想配列だと好きな場所勝手変数増やされたりして、メンテナンス性が悪くなるのね。

からクラスを使うようになりました。


あとは、例えばメールを送るという1つの大きな処理に関連して複数関数定義する場合に、

その関数をまとめてメール送信クラスとしてしまうのはあるかな

実例

http://web-terminal.blogspot.jp/2014/04/php-file-mail-pear.html

PHPエクセル出力できるPHPExcelもクラスになっているから使いやすそう。

http://qiita.com/suin/items/7a8d0979b7675d6fd05b

PHPからPDF出すのもクラスになっていてありがたかった。

http://cmf.ohtanz.com/blog/archives/2463

結論としては、

まとまりのあるデータメソッドがあって、まとめておかないとヤバそうなときだけクラスにすればいい。

2017-02-24

祝日csv文句言ってる奴は間違いなく三流プログラマー

祝日の日付が毎年変わることは当たり前だし、春分秋分の日みたいに発表されて初めて確定する日もある。

祝日名称が変わることは容易に想像できるし、例のcsvはそういった事情を鑑みて優れてるとは言えないが妥当ものといえる。

そもそも仮に特定の日付について祝日かどうか判定して名称を取得するだけならいわゆる連想配列作るわけで

あのcsvからそれを作ることの何が大変かさっぱり理解できん。

2要素ずつ取り出してkeyとvalueに突っ込むだけだろうが。

そりゃjsonになってたら楽かもしれんけど言語によっては逆に面倒だわ。

2015-08-29

すげえ

いまテレビで「図書館に逃げておいでツイート」を取り上げてる


あんたもよく図書館いってたよね」って超めんどくさい空気になった


おかげで図書館って単語自殺連想配列になって禁句になったわ

2015-06-07

おでんの集計

結局どうやるのが良かったんだろう。grepwcで頑張るには複雑すぎる気がした。

ツイートの取得のやり方は思いつかないんだけど、集計はmecabに渡した後Perlなりで名詞連想配列に放り込んでカウントダンプするのがよさそうかなと思った。

…量そんなないし手作業でやるのが一番だったかなぁ。。。

2014-03-06

http://anond.hatelabo.jp/20140306125206

データ構造に柔軟性を!変化を! → XMLDB

ここに、ドキュメント指向MongoDBとかCouchDB系が入ってきてる。

データ構造/表現最近プログラミング言語ハッシュマップ(or 連想配列 or 辞書)型に近くて

十分に直感的に扱えるから、わざわざ階層DBとか持ち出さないんじゃない。

2014-01-17

http://anond.hatelabo.jp/20140116221703

一理あるご意見いただきました。ありがとうございます

英語として読みにくいなら、メソッド名のほうを変えるよ。

モンスター.attackedBy(勇者.attackPower)

誤解を招いてしまったようですいません。先の理由1では、"能動態のほうが受動態より解りやすい"、ということを主張したかったのです。

あとづけで申し訳ないのですが、その順序で書くのにはもう一つ、MVC的な理由があります

理由3: 入力Controllerのコントロール対象が明確になる

RPG戦闘シーンの入力Controllerは、ユーザーメニュー選択等によって、勇者の攻撃方法攻撃対象モンスターを決定し、攻撃を実行する。

まり、この入力Controllerがコントロールする対象は、勇者と彼の攻撃対象だ。

勇者.attack(モンスター)

と書くと、勇者に命令していることが明示されるので、その設計意図がはっきりする。

攻撃方法型は、モンスター側への攻撃にも、勇者型への攻撃にも使える

なるほど、その設計は思いつきませんでした。〈モンスターへの攻撃と勇者への攻撃を対称に捉える〉という視点目からウロコです。

増田さまへ二つ質問がございます

ひとつめの質問は、攻撃方法型は、具体的にはどんなメソッドフィールドが並ぶのか、です。

考えてみたのですが、どうしても"通常攻撃","ディレイ攻撃","attackPowerの値","すばやさ", などが並ぶ、ディクショナリ(連想配列)的なものが思い浮かんでしまます。そうすると、結局モンスターのattackedByメソッドにif分岐を並べることになってしまうので、増田さまお考えの設計とは違うのでしょう。

ふたつめの質問は、増田さまが推す設計

モンスター.attackedBy(攻撃方法型: ジャンプ攻撃)

の方が良い利点はなんでしょうか。私は"時間的な処理の流れがわかりやすい"設計になりやすいことを主張しました(理由2参照)・

増田さまが考えるほかの利点があればぜひ教えてください。

ログイン ユーザー登録
ようこそ ゲスト さん