「lambda」を含む日記 RSS

はてなキーワード: lambdaとは

2020-05-25

自分が利用中のサービス

https://anond.hatelabo.jp/20200525021541

そういえば自分が使ってるサービスソフトウェアは定期的に棚卸しすることにしてるんだけど、ここ何年かやってなかったのでこの機会にやってみる。

アプリとかもあったりするけど基本的Webサービス提供されているもの

順番は適当

仕事効率化(ってAppStoreなら言われそうなやつ)
Google KeepTodoist
ToDo管理メモに。
個人用は主にKeep、仕事やそれに近いタスクTodoistと使い分けている。
Googleカレンダー・TimeTree
Googleカレンダー個人用。
職場でもカレンダー系はあるが、TimeTreeは職場以外も含めた仕事関係の人との情報共有に使っている。
DropboxPaper ・ Notion ・ Code(vscode-gist) ・ Code+GoogleDrive
ノートサービスとか。
Paper個人用でスマホでも見たいもの、Notion趣味仲間での共有用
長文や思考整理メモはなんとなくマウス触らずに考えたいので markdown + VS Code で、GistGoogle Driveに保存している。
全部Gistに投げたいけど、vscode-gist並べ替え出来なかったりと不便も多くて使い分け。
Google Drive
Dropboxから乗り換えた。Dropboxは同期出来る端末制限がキツくなったのと小規模プランがないのがね。
Googleは100GBからあるのがありがたい。Gmail等にも反映されるし。使い勝手微妙に悪いところあるけど。
Pushbullet
ブラウザスマホ間でメッセージ画像をやり取り出来るサービス
スマホ1台しかなくても入れた方がいいし、タブレットも含めて2台以上あるなら是非。お勧め
あと通知も割と使いやすいので自作した何かの通知を投げる先にも。
Freedom
自分を縛って仕事させるサービス
流行ったポモドーロテクニックの応用で、指定した時間仕事関係ないもの封印してくれる。
かったるい仕事してるとついついニュースはてブを見てしまうような人にお勧め
1Password
パスワード管理サービス
前はChromeに投げっぱなしだったけど、UIが貧弱なスマホアプリログインでこそ使いたいと乗り換えた。
IFTTTAWS LambdaGoogle App Script
リガから何か実行するサービス系。
LambdaGASは違う事にも使うけどここではこの用途として。
簡単なことはIFTTT、複雑になってきたらLambdaGAS
Inoreader
RSSリーダー。私はあまりこだわりないのでキーボードで使えればなんでもいいんだけど。
CamScanner
スキャナアプリスマホアプリだけど一応Webサービス部分もあるのでついでに。
書類適当スマホで撮ると、適切にトリミングして長方形に変形してモノクロ強調してくれる。便利。
年額6k。個人でも紙の書類が多くて片っ端から取り込んで捨てたい人にお勧め
情報収集とか
Pocketはてなブックマーク
Pocketは「後で読む」に特化してるのでこれから読みたいものはてブは読んだものと使い分けている。
朝日新聞デジタルデジタル毎日(毎日新聞)
共に月1k程度でWeb版の全記事が読めて便利。
Google Alerts
指定したキーワードニュース毎日メールで送ってくれる。
最近だと「WH-1000XM4」を指定し、いつ発売かとやきもきしているw
AlexaYahooニュースNHKニュース
少し違うけど元増田情報収集に興味ありそうなのでついでに。
前者はYahooニュース自動音声読み上げ、後者は直近のNHKラジオヘッドラインニュース部分をそのまま流してくれる。
毎朝毎晩「アレクサ、今日ニュース」と無機物に語りかけている。
その他趣味とか
Spotify
音楽は今はこれだけ。Alexa関係Amazon Music Unlimitedも入ってたけどやめてしまった。
Sptifyはレコメンドがとても良い。
毎週Discorver WeeklyとRelease Readarを聴きつつ、あとは気分に合わせたDaily Mix流してたら音楽関係欲求が大体満たされてしまう。
Discord
コミュニケーションサービス。主にゲーム系・OSSコミュニティで使っている。最近Slack使ってないなぁ。
今昔マップ on the web
明治頃の地図とかと今の地図を比べられるサービス
からブラタモリ的な事が趣味なので使ってるけど、一般の人も引っ越しときかにこういうの調べるのは良いと思う。
周囲より少し盛り上がった道は大抵元自然堤防田んぼのあぜ道だったりとか分かったり。
weblio 類語辞典
文章書くとき類語辞典は欠かせないのでありがたい。
なんでもPodcastサービス(自作 非公開)
言葉通り。radikoとかagqrとか音泉とか。
色々アレなので公開してないけど、似たようなのはgithub探せば出てくるので興味ある人は運用すると幸せになれると思う。

以下は有名だし説明不要かと。

有料プランがある物は月500円ぐらいまでなら応援を兼ねて払うことにしているので、結構色々なサービスの有料ユーザになってる。

はてブ見てて使ってみたくなったサービス
HackMD
ノート系は一生理想を探すんだろうなと思う。ノートエディタ人生
draw.io
前に少し触ったけどそのまま忘れてた

自分用のまとめではスマホアプリ編・ブラウザ拡張編・ソフトウェア編もあるけど、長くなるのでこの辺で。

5/27 追記

意外と読まれたようで驚いた。言及ブコメに少し返事。

RoamResearchとかどう? まだβだけどメモに良いよ。

ありがとう、良さそうだし少し試してみるよ。

ぜひ続きをお願いしたいわ

ありがとう

ただ自分用のやつは説明がないかあっても自分向けで簡素から、書き足す時間があればまた増田にでも投げるよ。

yzkumayzkuma PushbulletがiOSDLできなくなったのは痛い。360円までなら出す。

え、マジすか、それは痛い。

iPhone次に買い換えるまでに復活して欲しいなぁ。同じく金なら出す。

takun71 1Password便利だよなあ。万一情報流出したら死ぬけどw

同じく流出を警戒してたけど、スマホ使う割合が増えるほどに、複雑なパスワード入力が不便で……

全部PIN+指紋ぐらいになればいいのにね。

2020-04-14

anond:20200414104932

Reactとかで静的なフロント側作ってAWS Lambda とか Google Cloud Functions で作ったAPI叩くサービス作れるぐらいあれば400万はまあいけるんじゃね

2020-02-27

anond:20200227004129

何か関数型嫌いみたいだが

高階関数

とか

Lambda

とか

イミュータブル型

とか、最初関数型言語で使われ始めた機能が、Kotlinなんかの後発言語に取り入れられて便利に使われるっていう流れがあるんやで

勉強無駄にはならんのよ

2019-11-02

anond:20191102192601

ワイもAWS経験者やがS3/DynamoDB/Lambda/Cognitoくらいしか使ったことないやで

2019-04-28

anond:20190428003157

Cはシンプルなので始めるには良い言語

キャリアプランがはっきりしてるなら最初からwebプログラマになりたい」とか言ってもらえると、

「じゃあawslambdaphp書いてみようぜ」とか言えなくもない。

2019-03-14

anond:20190314093211

もうお互いが今夜相手とのセックスOKにチェック入れたら通知が来る機能LINEにつけてくれ。

LINE じゃないけどこれ実装して使ってるよ。AWS Lambda, DynamoDB バックエンドにして、React で簡単UI つけてる。お互いが24時間以内に ❤️ボタンを押した時だけ表示が変わる。やろうと思えば slack 連携もできる。

CloudFormation テンプレートしかったらあげるよ。

2019-02-01

ハンガリアン記法

やっぱりあれは高性能なIDEがある前提じゃね

最近AWS lambdaでちょこちょこ書いてる事が多いから、ほぼただのテキストエディタIDEじゃないのでハンガリアン記法じゃないとやってられないわ

2018-11-18

SIer若いSEがまるで老害のようだった

全然難しくないシステム改修案件。

お客さんとこで動いてる古い社内システム商品売上関連のTSVファイル毎日吐き出される→それを新しく使う事になったCRMからチェックできるS3バケットへ入れて欲しい、というだけ。

ファイルサイズも大きくないかLambda使ってバケットへ入れられるよ、1日1回だしそっちのほうが安上がりだよ、って提案したのに。

そのお客さんと長い付き合いがあるSIer若いSEさんがLambdaわからんとかでSIer系列サーバサービス会社仮装サーバセットアップしてcronでバッチ動かす事になりましたよ。

俺より若いのに老害すぎるよ。

2018-11-03

退職しました

近年、転職した時に退職しましたブログを書くのが流行りのようなので書いてみる。

転職しようか悩んでいるシステムエンジニアの人がいたら参考になれば。

ということで当方システムエンジニア歴約20年のおっさんだ。

ずっと小さいベンチャー企業渡り歩いているせいで、インフラからバックエンドからフロントエンドからなんでもフルスタックでやってきた(人がいなさすぎてやらざるを得なかった)。

近年は自分も開発しながらマネジメントもするプレイングマネージャだった。

社名を出す勇気はないので出さないが、まあまあ有名なWebサービスをやっている非上場企業から、ある業界で手広くいろいろやっている一部上場企業転職した。

2社の業界は全く違う。

社員数、年商10倍くらいになった。

年収現状維持で変わらずに転職したのだが、これは自分にとってかなり上出来。

というのも前の会社が小さいベンチャー企業で、CTO的な立場役員に気に入られていたこともあって、相場よりも大分高い給与をもらっていた。

なので、中規模以上の企業基準ではこの年収では無理ではないかと考えていた。

というか実際それが理由で最終選考で断られた別の中規模企業もあった。

「当社基準で考えると希望年収が高すぎる」と。

元が小さい企業というのも、大中規模企業への転職には足かせになった。

小さい企業のため、チームがせいぜい10名程度になるため、「PM経験あります!」とアピールしても、「10名程度じゃね〜」と軽く見られて響かないのだ。

エージェントを使って転職活動したのだが、そういうことはやる前から予測していたので、ダメ元で大中規模の有名企業を受けてみて、ダメなら有望なベンチャー企業を受けてみる、くらいに考えていた。

そしたら運良く経験スキルセットがぴったりハマる企業タイミング良くみつかり、1次面接でほぼ内定な感じでさらりと決まった。

で、なぜ大中規模の有名企業を志望したかというと、小さいベンチャー企業疲れたのとそろそろある程度安定した環境で働きたくなったからだ。

小さいベンチャー企業は本当に波が大きい。

上手くいっているときは高級ホテルで盛大なパーティー開いちゃったりするくらい羽振りが良いが、ちょっとつまずくとすぐ単月で赤字決算になる。

大体主力業務1本でやってるから、その一つコケると会社全体が存続の危機になってしまう。

そうして経営危機を迎えると、「ここままではダメだ!会社に変革を!新しいことに挑戦しよう!」と会社空気がなるのだが、「そうはいってもこれ以上悪くしたくない」という役員保守的気持ちも働いて、結局「失敗しないように挑戦しろ」というそれってつまり挑戦じゃないよねこれまで通りってことだよねっていうがっかりな指令がでて、やる気のある社員モチベーションを下げる。

そうなるとスキルとやる気のある社員から抜けていくのは自明の理だ。

私もその一人だ。

前の会社上層部営業チームが占めているせいで、売上至上主義会社だった。

そのため、ユーザビリティシステム堅牢性などは全く関心がなく、10年前のシステムが現役で動いているような有様だ。

少し前まではそれでもなんとかなっていたが、近年になりついにユーザGoogleに見放されてしまった。

システム革新して良いサービス提供する競合他社に取られ始めたのだ。ユーザSEOも。

役員SEOコンサルを使ってシステム的に小細工すればSEOは取り返せると信じているようだが、それは10年前のSEO対策だ。

下手なことをするとスパムと見なされてもっと悪くなるよとは伝えはしたが、適当にいい加減なことを言うSEOコンサルを盲信していて、聞く耳は持ってもらえなかった。

そんな会社だが、ある程度自由やらせてくれる風土もあったので、俺が担当しているところはどんどん勝手に新技術を取り入れていった。

事前に確認取るとOKでるのに時間かかったり、NGになったりするので、本当に勝手に作って、事後報告してた。

AWS上でReact+RoRWebアプリを立ち上げ、ElastiCache、ElasticSearchなどなるべくAWSサービスを使ってクラウドネイティブで動くようにした。

APIAPI GatewayLambdaサーバレスで動くようにした。

AWSに関して教えてくれる人は社内にはもちろんいないので、全て独学で習得した。

この行動が良かった。

この経験のおかげで、今回の転職ができたのは間違いない。

もし前の会社会社に言われた仕事だけしていたら、今頃どこにも転職できないしょうもないおっさんエンジニアになっていただろう。

からベンチャー企業への転職を考えているエンジニアは、いつまでもそこにいれるとは思わないでほしい。

そしていつでも転職できるように武器を持ってほしい。

会社エンジニアとして成長できる機会がないのであれば、自分から作っていかないといけない。

そして、会社方針自分の考え方が一致していることはとても大事だ。

それが違うと、経営危機の時に頑張ろうって気になれない。

転職するとき面接は、受けるこちらも会社査定する場なので、その辺も良くみてほしい。

転職する気がない人もたまに転職活動してみるのを薦める。

業界全体において今自分がどの位置にいてどのくらいの価値のある人間なのかわかるからだ。

まず職務経歴書を書いてみてほしい。

「俺の職務経歴書、魅力薄っ!」って自身で感じたら、会社生き方を変えるべきだ。

2018-05-26

英語で読まないと恥ずかしいor英語で読むと恥ずかしい

heightをヘイトと読んでたり、lambdaラムブダとか読んでたりする人が恥ずかしいのは分かる。

ただ、日本語の中で外来語が使われる時に読みが変わるのはよくある話ではないかとも思う。

例えばGoogleをグーゴゥと発音する人は居ないし、Appleをェアポゥと発音する人は居ないだろう。むしろそう読んでたほうが恥ずかしい人扱いされかねない。

この「英語で読まないと恥ずかしい単語」と「英語で読むと恥ずかしい単語」の境目はどこにあるんだろう。

2018-03-20

anond:20180320033921

えぇ。。。まじだよ。。。

それっぽいん単語出したら信じてくれないか

docker-composeを使ってGolangMysqlイメージ使っていつも開発してぞ

好きなエディタ学生無料で使えるIntelliJ IDEAでgoLand をよく使ってる。

Gitだってブランチ切ったりアドコミットプッシュくらいでGitHubを使ってプルリク系の開発をチームでしたりもした。

AWSインスタンス立てたりロードバランサつけてインタンンス二つに流したり、CDNさしたりもできる

いうてCDNの設定とかドメインの設定だけでラクチンなんだけどね。

あ、あと最近サーバーレスにはまっててaws lambdaをserverlesって言うツール使ってデプロイとかしてる。

これだけ言えば本当にエンジニアだってわかるよなぁ?

テストとかも書いたことあるからモックとかも当然理解してる

2017-11-27

pythonの問題です。100点満点のテストの最低点、平均点、最高点を求めたい。以... - Yahoo!知恵袋

地道に

score_list = []

while True:
    score = int(input())
    if score == -1: break
    score_list.append(score)

print(min(score_list))
print(sum(score_list) // len(score_list))  # // round off
print(max(score_list))


itertools を使って

itertools でこうか... すごい.., これが generator か..

itertools.takewhile の lambda x: x != -1 が False になると

itertools.repeat も yeild を止めるのか..

import itertools
score_list = list(itertools.takewhile(lambda x: x != -1, (int(input()) for i in itertools.repeat(None))))
print(min(score_list), sum(score_list) // len(score_list), max(score_list), sep="\n")

itertools.repeat

itertools.takewhile

PEP 255 -- Simple Generators | Python.org

2017-03-05

サーバーレスって違うよね

WebTorrent的なものだと思ったのにがっかりだよ

AWSLambdaのようなサービスサーバーレスと呼ぶマーケティング奴隷は滅ぶべきだしそれに迎合する脳を持たない権威主義者たちには技術を語る資格はない。

あれは言うとしたらマネージンレスだろう。サーバーレスではない。

おそらく彼らには強いAIと弱いAI区別すらつかないんだろう。

そうだ、百歩譲って弱いサーバーレスと言うなら許す。

2016-12-29

はてブで「Amazon」と検索してみると

昨今話題になってるヤマト佐川関連のブックマークが上位を占めるかと思いきや、まったく違った。

2016年12月29日10:54時点、本文、新着順で検索

Amazon検索結果 (絞り込み: 3 users 以上) 約 3,423 件中 1 - 40 件目 (0.26 秒)

以下略

ECサイト連想させるトピックほとんどなくて、AmazonB2B向けサービスを充実させていることに驚いた。

Amazonって表向きは物流業界革命問題を起こしている要因に挙げられているけど、EC以外のインパクトがどれだけ大きいのか門外漢なので分からない。

↑でブクマ付けた人、何が起きるのか教えて

2016-07-17

Vim実装されたlambdaがクソすぎる

こんなんじゃ実装されてないほうがまし

lambda実装に関わった人達中途半端にしないで最後まで責任持ってよ

2016-05-05

http://anond.hatelabo.jp/20160505160311

増田は気軽に質問できる中・上級者がいない趣味プログラマ学生さんだと仮定

仕事じゃなく自分のためにコード書くのって

モチベーション維持みたいなウェットな話が結構重要なので、

どうしても合う合わないがある。

他人アドバイスもそこを差し引いて聞くといいと思う。

筋肉付けたいとしても、筋トレ無限にできる人と無理な人といるでしょ。そんな感じ。

で、自分オススメは以下の3パターンくらい。

機能必要最低限で自分が欲しいツールサービスを作る

自分の欲しいものをつくる、なんてのは誰でも思いつく話だと思うんだけど、

自分の欲しいものの中で一番機能が少ないものを、ギリギリ最低限の実装でやること。

これが意外と難しい(特に考え過ぎちゃう人はそうだと思う)。

Webサービス系に限ると小物で欲しいものって無さそうなので、

もう少し違うジャンルで作るのがいいと思う。

最近なら自分専用のLINE botかいいんじゃないですかね。

プログラミングコンテストで中級者向け問題くらいまで解く

2番目のプログラミングコンテストは向き不向きが激しいとは思う。

サービスを作るのに比べると短時間で深く集中する感じになるので、これはこれでオススメ

最初AtCoder過去問、AOJ、ProjectEulerあたりを試してみて合いそうか考えるのがいいと思う。

Web系だと仕事に直結はしないかもしれないけど、頭の使い方みたいなところは磨かれるはず。

人材紹介会社が作ってる同種のサービスだと、問題レベル感としてトレーニングには向かない印象。

簡単すぎる問題を解くくらいなら小物作りでも実戦経験を積むべき。

縛りゲー自体目的にする

最後は縛りゲー。つまり、あえて整備されていない道を開拓していく。

いかに金をかけずにWebサービスを公開・維持できるか、というテーマなら

各種サービス無料枠とかAWS Lambdaとかを駆使して頑張るような話。

もしくは、先人が少なめのソフトウェアについて深掘りするとか。

たとえばAtomやVSCodeの自分専用プラグインなら最初オススメ内容にも合う。

人によると思うけど、自分は縛りゲー自体目的になることで新しい知識を獲得できてる気がする。

ときに、最初筋トレの話はわかりにくい喩えかもしれないけど、自分筋トレ派だと思う。

2016-02-26

関数型プログラミングのことは嫌いにならないでください!

高階関数はいいぞ!

lambdaはいいぞ!

ミュータブルはいいぞ!

homoiconicはいいぞ!

マクロはいいぞ!

Clojureはいいぞ!

2015-12-26

pythonでのデータファイル読み込みについてpython初心者です。p... - Yahoo!知恵袋 に対する回答。

 

方法Python ファイルとしてデータ構造も含めてデータを保存する場合

Step1. 次のようなファイル datafile.py を作成します。

# Set your np object in this file.
np = ....

# data
data = [
  [np.array([1,2,3]),np.array([0,1])],
  [np.array([4,5,6]),np.array([2,3])],
  [np.array([7,8,9]),np.array([4,5])],
]

 

Step2. 本体ファイルで datafile.py を呼び出します。

以下、変数 data, np には 上記の内容が、保存されて返ってきます

from datafile import data, np

 

注意: 簡単ですが、この方法場合 datafile.py の中で np オブジェクト定義する必要がありますPHP で言う所の include 的なのがあったら楽なんですけどね〜。

 

方法CSVファイルデータを保存する場合

Step1. 次のようなファイル datafile.csv作成します。

1,2,3,0,1
4,5,6,2,3
7,8,9,4,5

 

Step2. data = [np.array..., np.array... ] としたいところを次のように書き換えます

data = []
e = lambda i: int(c[i])
file = open('datafile.csv')
for line in file:
  c = line.split(',')
  data.append([
    np.array([e[0], e[1], e[2]]),
    np.array([e[3], e[4]])
  ])
file.close

補足 lambda式

2015-08-10

Pythonの条件演算子(三項演算子)に対する2chの反応

580 :デフォルト名無しさん[sage]:2006/07/26(水) 00:33:38

普通に三項演算子 ? : いれた方がよかったんだと思うけど、そうできない理由があったのか?

581 :デフォルト名無しさん[sage]:2006/07/26(水) 00:37:57

>>580

ああすごい同意

なんで三項演算子入れないで、あんなきもい

構文入れるんだよ。

583 :デフォルト名無しさん[sage]:2006/07/26(水) 00:44:31

つか、一種の3項演算子じゃん。

[x for y in z] とかとも類似する構文だし、俺はあれでいいと思うけどなぁ。。。

584 :デフォルト名無しさん[sage]:2006/07/26(水) 00:45:26

>581

入れたくないものを仕方なしに入れるから

とか? (本音を言うと誰にも使って欲しくない)

585 :デフォルト名無しさん[sage]:2006/07/26(水) 00:46:03

? : が既に使われててダメだったなら

C then X else Y

みたいにできなかったのか疑問

条件が真ん中に来るとか見づらいよ……

586 :デフォルト名無しさん[sage]:2006/07/26(水) 00:46:09

別にCに合わせる必要はないと思うよ。演算子関係ではCと違う部分がいっぱいあるから

半端に似せて「Cと同じだ」とか誤解を招くのはよろしくないと思う。

587 :デフォルト名無しさん[sage]:2006/07/26(水) 00:48:42

"x for y in z"

  ←  ←

データの流れが見える

"X if C else Y"

↑      ↑

分かれていて嫌

588 :デフォルト名無しさん[sage]:2006/07/26(水) 00:57:28

>>587

気持ちはわかる。対称性が悪い感じだね。

でももう決まったことだし、個人的にはあまり気にしないで使うことになるだろうな。

意見を述べるならもっと前に言うべきだったってことでしょう。

591 :デフォルト名無しさん[sage]:2006/07/26(水) 01:07:32

初めてリスト内包を見たときは「何じゃこりゃ、ワケわかめ」という印象だったけど

もう慣れてしまった。今ではリスト内包直観的で分かりやすいと感じる。

ずっと Guido のセンスで取捨選択してきたわけだし、ぶっちゃけ今のところこれといって

ダメ杉な仕様とゆーのは思い付かない。

今度の新しい三項演算子も慣れたら普通だと感じるようになるんジャマイカ

592 :デフォルト名無しさん[sage]:2006/07/26(水) 01:13:04

X if C else Y

「Xなんだよ! まあCだったらの話だけどな そうじゃなければYでよろしく」

593 :デフォルト名無しさん[sage]:2006/07/26(水) 01:15:11

このスレ読んでるうちにだんだん慣れてきたw

594 :デフォルト名無しさん[sage]:2006/07/26(水) 01:16:06

リスト内包表記は書いちゃうけど読みにくいな

[x for y in z]

ここにたどり着く前に脳内スタック忘却を始めるw

[x for x in original_list if x>2 and x<5]

こっちは自分で書いてもコメント必要だww

595 :591[sage]:2006/07/26(水) 01:37:07

文が書ける文脈では普通の if 文を使えばいいわけで、

X if C else Y を使うのはきっと式の中がメインになるんだろうな。

lambda の中とかリスト内包の中とか。

functor = lambda x: x+1 if y > 0 else lambda x: x-1 if y < 0 else lambda x: x

とか、

delta = Numeric.array([[1 if i == j else 0 for i in range(M)] for j in range(N)], Numeric.Float32)

みたいな。>>593の言う通り、用例を考えていたらもう慣れてきた希ガス

596 :591[sage]:2006/07/26(水) 01:54:02

q, r = divmod(n, 10)

print "%d%s" % (n, "th" if q == 1 else "st" if r == 1 else "nd" if r == 2 else "rd" if r == 3 else "

th")

たくさん if ... else が続く場合はなかなか読みやす希ガス

601 :デフォルト名無しさん[sage]:2006/07/26(水) 11:08:59

>>596

その書き方が許されるとすると、かなり応用力がありそうですね。

実質任意バージョンでOKてことだから・・・

でも、あんまりやるとさすがに見づらい気もする・・・

596がすでにぱっと見ではよく分からない

602 :デフォルト名無しさん[sage]:2006/07/26(水) 13:39:10

やっぱり、判定式が真ん中に来ると読みにくいな。

A = if C then B else D

みたいな形の方が文章として読みやすいと思うんだが。

603 :デフォルト名無しさん[sage]:2006/07/26(水) 14:03:57

>>596

三項演算子いれて、

print "%d%s" % (i, r == 1 ? "st" : r == 2 ? "nd" : r == 3 ? "rd" : "th")

にしたほうが見やすくない?

607 :デフォルト名無しさん[sage]:2006/07/26(水) 15:15:14

>>602

A = B if C else D だと

CならばDと目が流れちゃうかもかも。

まあ、慣れれってことか。

608 :デフォルト名無しさん[sage]:2006/07/26(水) 15:28:49

まあ、ハズレのときはNoneが返る形ならば、

A = B or D で済むんだけどねぇ。

BがNoneならDって使い方。これは結構便利でよく使ってるんだけども。

いまだに

A = B and D は使ったことがないけども。

609 :デフォルト名無しさん[sage]:2006/07/26(水) 15:49:33

>>596

> たくさん if ... else が続く場合はなかなか読みやす希ガス

おお!まさにそう思うよ!急にこの演算子が大好きになった。

2015-05-01

クロージャ」という言葉について

http://b.hatena.ne.jp/entry/kenokabe-techwriting.blogspot.com/2015/04/blog-post_30.html

http://kenokabe-techwriting.blogspot.jp/2015/04/amazon102-93.html

この記事自体はどうでも良いのだけど、以前「クロージャ」という言葉の初期の使用例を探したことがあったのを思い出したので、参考までに。

Landin "A λ-Calculus Approach" (1966)

We represent the value of a λ-expression by a bundle of information called a "clusure", comprising the λ-expression and the environment relative towhich it was evaluated.

我々は、ラムダ式の値を「クロージャ」と呼ばれる情報の束で表す。「クロージャ」はラムダ式とそのラムダ式評価に関する環境から成る


Moses "The Function of FUNCTION in LISP,or Why the FUNARG Problem Should be Called the Environment Problem" (1970)

A useful metaphor for the difference between FUNCTION and QUOTE in LISP is to think of QUOTE as a porpous or an open covering of the function since free variables escape to the current environment. FUNCTION acts as a closed or nonporous covering(hence the term "closure" used by Landin).

LISPでのFUNCTIONとQUOTEの違いについては、次のように考えるのが有用比喩になる。QUOTEは多孔的または開放的関数をおおっていて、自由変数現在環境へと脱出できる。FUNCTIONは閉鎖的(closed)または非多孔的に関数をおおっている(このことからLandinはクロージャ(閉包)という用語を使っている)。

(訳はhttp://kreisel.fam.cx/webmaster/clog/img/www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/p/funarg/funarg.html から)


Sussman and Steele "SCHEME: An Interpreter for Extended Lambda Calculus" (1975)

In order to solve this problem we introduce the notion of a closure which is a data structure containing a lambda expression, and an environment to be used when that lambda expression is applied to arguments.

この問題を解決するためにクロージャという概念を導入する。クロージャラムダ式とそのラムダ式引数適用されるときに使われる環境から成るデータ構造である


Steele and Sussman "The Art of the Interpreter" (1978)

We say that the procedure is closed in the current environment, and the &PROCEDURE-object is therefore called a closure of the procedure, or a closed procedure.

この手続き現在環境に閉じられている(closed)と言い、それゆえ&PROCEDUREオブジェクトはその手続きの「クロージャ」あるいは「閉手続き」と呼ばれる。

2014-02-15

Python無名関数っぽいUnixコマンド作った。

GitHubとかブログやってないからここに書いておく。

使い方

標準入力を使いまわしたいとき

... | fun x:: cmd1 x : cmd2 x : ... : cmdn x | ...

ただしcmdにはサブシェルパイプなどは使用できない。

標準入力をそのまま利用する場合と一行毎に処理する場合

一行毎に処理する場合はxargs -Iを利用する。

$ ls *txt
a.txt b.txt
$ cat a.txt
1
$ cat b.txt
2
$ ls *txt | fun x:: echo x : cat x
a.txt b.txt
1
2
$ ls *txt | xargs -Ix fun _:: echo x : cat x
a.txt
1
b.txt
2

コード(fun)

>と<はそれぞれ大小の不等号で置き換えてくださいな

#!/usr/bin/env python
import sys
from subprocess import *

def take_variable(var):
	# check the syntax of variable (http://www.gnu.org/software/bash/manual/bash.html)
	# variable ::= (_|[A-z])(_|[A-z]|[0-9])*
	# variable contained space
	if len(var.split()) > 1:
		raise Exception('fail: the variable contained space')
	# check head
	if not (var[0].isalpha() or var[0] == '_'):
		raise Exception('fail: the variable contained wrong character')
	# check the body of variable
	b = True
	i = 0
	for c in var[1:]:
		i += 1
		# is variable contained invalid character?
		if not (c.isalpha() or c.isdigit() or c == '_'):
			b = False
			break
	# no exception if thre are only spaces after variable
	if not b and not var[i:].isspace():
		raise Exception('fail: the variable contained wrong character')
	elif b:
		return var[0]
	else:
		return var[:i]

def parse(var_to_cmds):
	# check the position of '::'
	try:
		pos = var_to_cmds.index('::')
	except Exception:
		raise Exception('not exists "::"')
	var = var_to_cmds[:pos]
	cmd_str = var_to_cmds[pos+2:]
	# check the format of variable and commands
	if var ==  '':
		raise Exception('fail: no variable before "::"')
	elif cmd_str == '':
		raise Exception('fail: no commands after "::"')

	return (take_variable(var),cmd_str)


if __name__ == '__main__':
	# parse variable and commands
	try:
		var,cmd_str = parse(' '.join(sys.argv[1:]))
	except Exception, e:
		print >>sys.stderr, e
		sys.exit(1)

	# var -> val
	val = sys.stdin.read().replace('\n',' ')
	# mapping and split by ':' again
	commands = map(
			(lambda cmd: cmd.replace(' '+var+' ',' '+val+' ')),
			cmd_str.split(':'))

	# exec command
	for cmd in commands:
		try:
			# need split for remove spaces
			check_call(cmd.split())
		except Exception,e:
			# print >>sys.stderr, e
			sys.exit(1)

本当はfunじゃなくて\(バックスラッシュ)で、:: じゃなくて→にしたかったんだけど、シェルが置き換えちゃうからしかたない

シェルの改造は禁断の手段だし

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