「演算子」を含む日記 RSS

はてなキーワード: 演算子とは

2019-09-05

1+1が2にも3にも4にもなるってよく言うけど

1+1が2にも3にも4にもなるって脳筋陽キャがよく言うけど、

ここで謎の演算子「+」を持つモノイドを考えてみたい。

まず、前提として、1,2,3,...はモノイドの元 α1,α2,α3,...の簡易記法とする。

モノイドの単位元はα0とする。

モノイドの次の元を得る関数SUCCが存在し、

α_n+1 = SUCC(α_n)と表すことができることとする。

まり

α2 = SUCC(α1)
α3 = SUCC(α2) = SUCC(SUCC(α1))
...

である

α0 は単位元であるので、単位元定義より、

α0 = α0 + α0
α1 = α1 + α0
α2 = α2 + α0
...

である

ここで、1+1が2にも3にも4 という定義より、

α1 + α1 = α2 = SUCC(α1)
   = α3 = SUCC(SUCC(α1))
   = α4 = SUCC(SUCC(SUCC(α1)))
...

となる。

これを満たすことができる関数SUCCは幾つか考えられるが

その1:

defun SUCC(x) = α0

その2:

defun SUCC(x) =
        if (x equals to α0) then α0
        else x

等とすることができる。

その1は 1bit の排他的論理和

α0 + α0 = α0
α0 + α1 = α1
α1 + α0 = α1
α1 + α1 = α2 = SUCC(α1) = α0

その2は 1bit の論理和

α0 + α0 = α0
α0 + α1 = α1
α1 + α0 = α1
α1 + α1 = α2 = SUCC(α1) = α1

である

脳筋って頭いいんだね

2019-08-22

anond:20190822094152

パイプライン演算子いいよね・・・

材料(ふるいにかけた(小麦粉)、卵、牛乳

|> 混ぜて

|> 焼いて

|> 食う

やっぱ関数型でも、命令は順に列挙する形の方が人間の頭にフィットするのか

2019-07-08

anond:20190708174016

後知恵で考えると、オブジェクト自身を示すのに「this」というキーワードを割り当てたのは間違いだったと思う。

CoffeeScriptの「@」くらい簡単表記であれば記述強制する動作でもよかったのに。

そうするとstaticメソッドからstaticメソッド呼ぶときと、インスタンスメソッドからインスタンスメソッドを呼ぶとき区別が明示的に必要になってしまうが。

プログラム言語にはこういうのがよくあるよな。最も代表的なのは文字列結合演算子言語によってバラバラ問題

2018-12-27

anond:20181227213048

横だけど、こういうやつ。

数値計算の主要部分である10億×10次元クォーク演算子行列逆行列計算では、「京」に特化したコード開発を行った。ノード内の8コア並列に適した領域分割を行い、単精度前処理(ルッシャーのSAP前処理とSSOR前処理)を用いたBiCGStabソルバーで、16~4096ノード使用した計算で、25%以上の実行効率を達成した。

https://www.r-ccs.riken.jp/r-ccssite/wp-content/uploads/2016/06/imakore_5-1.pdf

これラズパイWi-Fiでつないだら解けんのか?

2018-09-19

AI人生を賭ける人たちは何を夢見ているか

ネタ元:

なぜ日本人工知能研究世界に勝てないか 東大松尾豊さんが語る“根本的な原因”

http://www.itmedia.co.jp/news/articles/1809/18/news011.html

 

結論から言うと、私はそこまで悲観してない。ビジネスとして非常に厳しい状況にあるのは確かだが、研究領域としてはアメリカ中国もまだ入り口に立ったに過ぎない。

 

AIの話をする前に、今のコンピュータの話を少ししておこう。皆さんの目の前にあるパソコンとかスマホの話だ。

これらに入っているCPUとかメモリとかは、究極的にはたった "NANDゲート" という立った1種類のゲートの組み合わせで表現可能だという事を聞いた事がある人は多いだろう。この NANDゲートというやつは、こういう簡単演算が出来るにすぎない。

 

便宜上、ここでは * がNAND演算を表す演算子だとすると

 

0 * 0 = 1

0 * 1 = 1

1 * 0 = 1

1 * 1 = 0

 

たったこれだけ。たったこれだけの素子の組み合わせで、計算機でもメモリでも何でも作れる。たったこれだけしかできない素子であっても、これを何十億個という規模で組織的繋ぎ合わせ、その上でソフトを走らせれば PCスマホになる。極論すればね。もちろん実際には、もっと効率の良いやりかたに最適化されているが、それは枝葉末節の話だ。

 

話を戻してAIの話だが、この話の始まり人間脳みそ研究と繋がっている。 長年研究されてきたにもかかわらず、人間脳みそについて解っている事と言えば、部位ごとの大まかな機能と、あとは細胞レベルの話で、全容解明などというにはほど遠い団塊にある。ただし、ここで1つ、非常に重要発見が数十年前にされている。 1つの細胞は、驚くほど簡単な事しかできない、という事だ。1つの細胞の働きをコンピュータ上でシミュレーションすることは、今や簡単ことなのだ。

 

感の良い人は、ここでおわかりだろうか? 

 

NANDゲートのような単純な素子であっても、それを何十億個という規模で組み合わせれば、コンピュータを作る事ができる。

 

そして、人間の脳も、どうやらその構成単位は単純な事しかできない脳細胞であり、それらがどのように組織化され、繋がっているかという事を解明していけば、脳みそ再現できるんじゃないか?ということだ。その構成単位である細胞の事は、すでに解明されているのだ。

 

例えば40年前に、「NANDゲートを十億個ほど詰め込んだチップを積んだ携帯端末が、やがて普及して、だれもが携帯するようになるだろう」なんて、信じる人はごくわずかだっただろう。でも現に、現在そうなっている。

ということを踏まえるならば、現在既に1個の脳細胞の働きは解明されていてシミュレーション可能なのだ。それを何億個か何兆個かくみあわせたようなものが将来実用化される可能性は? ゼロではないんじゃない?

そこに賭けている人たちが居る訳だ。その大きな構造の中で、現在AIというものを見ないと、本質を見誤ると思う。

 

そういう意味では、研究領域としては、アメリカ中国もまだ入り口に立ったに過ぎないのだ。

2018-09-18

お前等本当にJavascript書いてんの?

型が無いのはともかくClassも碌に書けない、継承も書けないしジェネリックもない。

演算子オーバーロードなんてもってのほか

そんな低機能JSばっか書いてる奴は増田の中にまだいるのか?

2018-08-31

おすすめのひどい技術書あります

こういうの

https://www.amazon.co.jp/はじめてのPython-AIプログラミング-BASIC-MASTER-金城俊哉/dp/4798044857/

AIプログラミング練習にもPython練習にもなりません。

秀和システムからこんなレベルの低い本が出るとは思いませんでした。

AI勉強がしたければ素直にオライリーあたりで出ている本を買った方がいいでしょう。

皆さん著者の名前を覚えてください。プログラマを名乗るにも値しない男の名前です。彼が関わる本に価値が生まれることはないでしょう

https://www.amazon.co.jp/Pythonプログラミングパーフェクトマスター-Perfect-Master-金城俊哉/dp/479804816X/

わかりやすく読みやすいですが、誤字脱字があまりにも多いです。

文章中の1文字くらいが抜けているのはまだいいですが、ソースコード演算子が全く違う記号になっていたり、ソースコード通りに実行するとエラーになる箇所が数カ所あります

本書は読みやすいですが、それはpython自体が学びやすいだけでこの本自体はクソ以下です。

正直出版するときちゃんとチェックしたのか疑うレベルです。

2018-08-18

ニュースサイトが見にくい

この頃google検索でも、上位にずらっと広告が並び、ひどいときには3ページ目くらいまで

広告ときがある。そういう時はしょうがないので、検索語を追加したり プラスマイナス演算子を書いたり、

クォーテーションで括ったりするわけだけど、その間20秒くらいロストする。

googleニュースも今年の5月くらいかカスタマイズが効かなくなって、俺が見たいニュースじゃなくて、

スポンサー様が提供する「ニュース」をたくさん見せられるようになった。そういうのが嫌だからテレビを捨てて

googleニュースを見ていたのに。なんかい方法いかなぁ。

自分でフェッチしてくるボットを書いてHTMLを生成すればいいけど・・・今更そんなWeb黎明期みたいなことしないと

広告から自分暮らしを守れないのかな。

2018-08-05

anond:20180805145239

そんな事はない(願望)

しろから希望的観測

おいらはずっと勉強を続けるよ(コンコルド効果


ただやっぱkotlinは、kotlinっぽくカッコ良く書こうとすると学習コストけっこうかかるし

他人の手でカッコ良く書かれた文とかを見ると、これ演算子オーバーロードなのかな、それとももっと別の言語機能で実現されてんのかな、とか

探るのも一苦労なんだよなあ。

2018-05-08

anond:20180508164921

そりゃ機能的には同じだが、node.jsで作ったクローラPHPで作ったクローラじゃ

ソースの刺々しさが違うよ。なんだかんだでnode.jsの方が処理はスッキリ書けるが、

からといってソース無駄な部分(カッコとか演算子とか)はnode.jsの方が圧倒的に多いよ。中カッコも多いからトゲトゲしてる。

2018-05-07

node書いてるときメソッド呼び出しを->()で書いてしま

寧ろー>演算子実装してくれ! 

体が完全に慣れちまってるんだ!

2018-03-22

anond:20180322191420

困っている側がうまく伝えるのが、客ではないのだから当然。

言語演算子について調べたまえ。

代入演算子比較演算子だ。VBAのほうが一つ二役で紛らわしい。

2018-02-27

anond:20180227140857

演算子の多重定義のないJava

BigDecimal result = new BigDecimal("100000").multiply(new BigDecimal("99999.55")).add(new BigDecimal("3333333333"));

多重定義のあるC++

BigDecimal result = BigDecimal("100000") * "99999.55" / "3333333333";

anond:20180227140857

多重継承演算子オーバーロードもフレンド関数も、それが便利で効率的から考案されたのでしょ?

多重継承ができれば、少ないコード数でプログラムが作れるとか、

演算子オーバーロードがあれば、複雑なデータ構造同士を独自ルールで「加算」に相当する演算ができるとか、

なにかしら理由があってできたモノを 「なくてもできる」で否定しても、

「あるともっと楽にできる」と反論されておしまいじゃない?

いらない文法利便性を述べた上で、それが生み出した弊害を列挙したほうが説得力あるんじゃないかな。

C++のいらない文法

多重継承

多重継承がなくてもどんなに複雑なプログラムでも記述できる。

JavaphpインターフェイスRubyMix-inがある。

演算子オーバーロード

+ や - などの演算子に別の動作を与える演算子オーバーロードはなくてもプログラム記述はまったく困らない。

C言語

a = b + c;

と書いた場合解釈は足し算しかない。c + b と書いても同じ。

C++

a = b + c;

と書いた場合、b と c が何かでまったく動作が変わる。逆にして c + b は動作が違う可能性がある。つまりこの行だけ見てもどのような動作になるのか予測できない。

Java はできない

PHP はできない

Python はできる

Ruby はできる

フレンド関数

クラス保護メンバー変数に、アクセスできる関数のこと。通常、privateメンバ変数クラスからアクセスできないが、フレンド関数はそのprivateな変数アクセスできる。

不要例外的文法

2017-12-26

10. 「site:」+「I'm Feeling Lucky」で、特定サイト内かつ検索結果をスキップする

https://www.google.co.jp/search?q=site%3Astore.steampowered.com%2Fapp%2F+CUPHEAD&btnI

例えば↑の検索では、Steam内のCupheadページを直接表示します。







解説

末尾に「btnI」を付け加えると検索ワードをI'm Feeling Lucky化することができ、「site:」やその他の演算子と組み合わせることが可能です。

ただ、毎回アドレスバー入力するのは大変なので、ブラウザ検索エンジンに追加して使用するといいです。

上の例で言うと、Steamゲームをよく調べる人なら、site:steampowered.comとbtnIを組み合わせたものをあらかじめブラウザ検索エンジン登録(ついでにショートカットキーも設定)しておく。それ以降は、あるゲームsteamページを見たくなったときブラウザ入力バーに「ショートカット+ゲーム名」を入れるだけで、上に書いたURLみたいにすぐ表示することができます

btnIの機能は意外と使えるので覚えておくといいです。

anond:20171225150423

2017-11-25

アカウント名にvimを含むユーザを除外して検索する

vim OR @検索に混ぜても問題無いID

検索に混ぜても問題無いIDは「vimsearch」とか「vimfind」みたいな存在しないIDでもいい。

リプライ先がvimを含むIDツイートは弾けない、Vimの人だけど名前Vimを含んでる人も弾いてしまう、他に演算子使ってたりするとちょっとクエリ書くのが面倒、とかあるけど。

(多分だが検索してる人は「lang:ja」も付けてるだろうからと思って書くけど、混ぜるなら「vim lang:ja OR @vimsearch」とかになる)

追記

このツイート経由で知った → https://twitter.com/noumin_T/status/934394301559095296

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-06

Perlは終わった完全にオワコン

perlは終わった。もうずいぶん前から終わってたけど話題にも上がらないってことは完全に終わってる。

Githubトレンドを見てもperlなんて出てくる日の方が少ない。

結局Perlみたいにいろんな書き方ができるような言語はお呼びじゃねーってことだろう

Go/Pythonみたいな言語がもてはやされるのはそのためだろう

ライブラリ充実度に至ってはpython圧勝

Web開発ならRailsがあるRuby

どこでも動かせる意味ならGolangが最強だろう

Perl6については意味からない演算子増えて、さらに読みにくくなった

うPython, Rubyに追いつくこともできないだろう何よりリリースが遅すぎたもうPerlが入る余地はない

バイバイPerl(´;ω;`)ノシ

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