This domain may be for sale!
![yukari-n.info](https://cdn-ak-scissors.b.st-hatena.com/image/square/8d71ff5111e05619a10d29bb40d7aebaa75c8fbc/height=288;version=1;width=512/https%3A%2F%2Fs0.wp.com%2Fi%2Fblank.jpg)
最近、いろいろな言語で続々、実装されていく関数型プログラミング技法。 今回は、Python2.7 に標準( 一部、import )に備わっていて、Python で いますぐにでもおこなえる 関数型プログラミング技法の実現手法 & 利用モジュール と メソッドについて、1ヶ所にまとめて整理してみた。 ( 目次 ) map() で 高階関数を実現 filter() で 高階関数を実現 reduce() で 高階関数を実現 & 再帰呼び出し関数 closure で 高階関数を実現 functools.partial() でカリー化(関数の部分適用)を実現 generator(ジェネレータ式)で遅延評価を実装 yield(イールド式)で遅延評価を実現 以下のコードは、この記事末尾に記載した数多くの参考ウェブサイトを参考、引用しています map() は、関数を引数に受け取る「高階関数」(関数型言語)
コマンド $ ls | sed -e s/\.txt// | awk '{print $1 ".txt " $1 "_document.md"}' | xargs -n 2 mv 戦略について まず前提として、ファイルのリネームを行うには、 xargs -n 2 mv にパイプで 元ファイル名 リネーム後のファイル名 のようなフォーマットの文字列を渡せば OK です。 $ ls before.txt $ echo "before.txt after.txt" before.txt after.txt $ echo "before.txt after.txt" | xargs -n 2 mv $ ls after.txt この文字列が複数行ある場合、 xargs -n 2 mv は1行ずつ順次処理します。 $ ls 1.txt 2.txt $ echo "1.txt 11.txt\n2.tx
ファイルを1行ずつ読み込みながら処理するのはawkが向いていますが、 途中の行から前に戻りながら編集したい場合など、 エディタ操作としてなら簡単に記述できる処理をスクリプトとして実行したい場合、 Vimのバッチモードは便利です。 (shell script中から、バッチモードで起動したVimを、1つのフィルタとして使う等) Ex modeでスクリプト実行: -e -s <scriptfile Normal modeでスクリプト実行: -s scriptfile (-e無し) 最近Ex mode用スクリプトを2つ書いた際のTipsです。 http://qiita.com/deton/items/60d796c3ba5cbb8c4bbb#4-5 http://qiita.com/deton/items/2fc42176b177d33d6d1e#3-1 GNU edのコメントは#だがvimは"
もし、Ubuntu系以外のディストリビューションをインストールしたい場合は、「-t」の前の「-r」オプションを「trusty」ではなく、「wheezy」と入力すれば Debian を、「kali」とすれば Kali をインストールすることができます。 2. Xubuntuの日本語化 Xubuntuのインストールが済んだら、日本語環境をインストールします。 1. 日本語のLauguageパックのインストール まず、日本語パックをインストールします。 画面左下メニューボタンをクリックし、「Applications Menu > Terminal Emulator」を選択してターミナル画面を表示します。 ターミナル画面が開いたら、次のとおり入力します。 (trusty)username@localhost / ~$ sudo apt-get install language-pack-ja /
Croutonを利用してデュアルブートしたUbuntuなどのLinuxをアンインストールしたい場合、どうしてますか? 起動時に表示される「OS verification is OFF」の画面で[Space]キーを押してデベロッパーモードを無効化し、初期化する方法や設定画面から「Powerwash」する方法があります。でも、別のLinuxディストロを使いたい場合、またデベロッパーモードにするところから始めないといけません。面倒ですよね。 もっと簡単な方法がありますよ。 3行のコマンドでアンインストール Chromebookを起動したら、[Ctrl]+[AIt]+[T]キーでターミナル画面を開いたら、「Shell」コマンドを入力した後、次のコマンドを入力します。 crosh> shell chronos@localhost / $ cd /usr/local/chroots chronos@l
はじめに ご承知のように、ChromeBookには何通りかの方法で、Linuxもしくはその環境をインストールできます。 私の使っているAsusFlipでの代表的なやり方としても、以下のようなものがあります。 ChromeBrew(ChromeOSにコマンドを追加) Crouton(Androidのように、ChromeOSと同時にUbuntu,Debian等を稼働させる) KaliLinux, Archlinux(外部SD,USBから切替ブート) 切替ブートについては、ChromeOSのブートイメージを借用→再署名する方法で、Fedoraなどでも可能なようです。 私は、おもにKaliを使っています。 理由は、ChromeBrewについては、環境が中途半端で使いにくいと感じました。たとえば、ロケールのインストールが中途半端で、これで設定してもプレインストールされているBashには認識させられま
emacs-tangentsメーリングリストにまとめられたEmacs界隈のニュースに@tadsanが雑にコメントつけつつ紹介していくよ ヾ(〃><)ノ゙☆ 前回: 週刊Emacs News 2016年11月21日 リンクは主にreddit.com/r/emacs、/r/orgmode、/r/spacemacs、Hacker News、planet.emacsen.org、Youtube、Emacs NEWS fileの変更、emacs-develあたりから採られてるよ。 注意 この記事の出典: 2016-11-28 Emacs News 注釈が不要なひとはemacs-news Archives - sacha chua :: living an awesome lifeから読むと良いですよ。 Org Mode Mount org-mode files as FUSE file system
はじめに emacs25.1のRC版が昨日(7/24)リリースされたようです。 まだRC版なので、どの程度動作するか分かりませんが、とりあえず使ってみます。 今回は、何かあったときに環境をすぐに戻せるよう、evmを使ってemacsのバージョンを管理します。 環境 : MacOSX ElCaptain 10.11.5 バージョン25の変更点 emacs-25のNEWSを見れば変更点がわかります。 1.evmのインストール evmはemacsをバージョン管理するパッケージです。 まだevmにversion25.1のバージョンが登録されていないため、ソースコードから持ってきて、ソースをいじります。 ※ 2016/8/18追記 ビルドにはXcode Command Line Toolが必要です。 xcode-select --installを実行すると、Command Line Toolのインスト
この記事はACCESS Advent Calendar 17日目の記事です。 こんにちは!無人島にEmacs拡張一つ持っていけるとしたらelscreenを持っていくEmacsライトユーザの@kumabookです。 Emacsは自分でカスタマイズできることが大きな特徴・メリットですが、今まで自分は他の方が作ってくれている拡張を入れて少し設定ファイルを書くぐらいで自分で拡張を作ったことはありませんでした。 今回は脱ライトユーザすべく簡単なEmacs拡張を作ってみたいと思います。 拡張の作り方を学ぶのが目的なので、あまり機能に悩まないものにしたいと思います。以前LGTM.inから画像を取ってくるというFirefox拡張を作ったので、それのEmacs版を作ってみたいと思います。 Caskを使った開発環境の構築 プロジェクトの作成 Caskはパッケージ管理をしてくれるものですが、実は開発環境の構築も
Mac 環境構築の自動化 2015年末版 ( homebrew + homebrew-cask + homebrew-brewdle + mackup + crontab + mas-cli )MacMacOSXhomebrew環境構築homebrew-cask この記事は クラウドワークスAdvent Calendar 2015 14日目の記事になります。(風邪をひいて一日遅れましたごめんなさい><) 今までの Mac 環境構築の歴史 最初は、インストールしたアプリケーションの手書きメモとホームディレクトリの dotfiles を dropbox 配下に移動しシンボリックリンクへ張替えを行う自前シェルスクリプトがあっただけでした。 アプリをインストールする度に、手元のメモを更新するという温かみのある日々(もちろん頻繁に更新を忘れる)、そんな日常に颯爽と現れた Github Boxen 1
MacBook Proの新型発売 ついに 待ちに待った新しいMacbook proが発売されましたね。ということでMacbook Proを買いましたので,環境構築した際のメモです。 ちなみに私が買ったのは旧モデル(MacBook Pro Retina 13-inch, Early 2015, OSX El Capitan)で、Apple Storeの整備済み品を買いました。 安さに負けました。 作業用BGMを流す 色々設定に時間がかかり長丁場になりますので、音楽を流しましょう。私は作業完了までに午前中一杯かかりました。特にXcodeが必要な方はインストールにかなり時間がかかります。 私は「恋ダンス」を延々とリピートして流していました。 Macの設定 以下、私の設定です。 この設定の良し悪しは個人によりますのでご注意ください。 1.トラックパッドの設定 「システム環境設定」 ↓ 「トラックパ
#!/bin/sh echo "Homebrewのインストール(※コマンドが変わることがあるので注意)" /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" echo "brew診断" brew doctor echo "⇒Your system is ready to brewって出たら成功です" # ①そのままパターン brew install wget # ②caskパターン brew cask install docker # ③mas-cliパターン mas install 497799835 # xcode(IDで指定)
TLPで省電力設定 2014年9月9日 更新 Jupiterは一旦開発終了 ちょっと前までは、Jupiterがすごく便利だったんですが、基本的には開発が終了しています。 有志の方がその開発を引き継いでいたりしますが、実際使った感じでは以前のようなJupiterではないのかなと。 よって、Jupiterの代わりを探さなくてはならないのですが・・・。 今回紹介するのはTLPです。 以下、英語サイトを見ながら設定しています。 訳しても伝わりそうなところは日本語にしていますが、下手に訳すとおかしくなりそうなとこは原文ママです。 設定などは、こちらのサイトを参照しております。 まずは、ppaを追加して、インストールです。 sudo add-apt-repository ppa:linrunner/tlp sudo apt-get update sudo apt-get install tlp tlp
最近引越しをした. 引っ越す前の町には電源カフェがたくさんあったのだが, 引越し先では, 電源が利用できるカフェが少ない. なので, ノート PC (ArchLinux) のバッテリを長持ちさせる方法を模索してみた. Power Management (日本語) - ArchWiki バッテリ確認# 残りバッテリーを調べる# apci コマンドで, バッテリ状態を見ることができる. Laptop (日本語) - ArchWiki $ apci -b cbatticon# システムトレイ用のバッテリアイコン. エコの設定# Power saving - ArchWiki Linux – Extend your laptop’s battery life 明るさ調整# 明るさを低くすることで, バッテリを長持ちできる. Backlight (日本語) - ArchWiki xcalib# xc
【2014年5月28日追記】 ※ 注意 ※ 現在このバージョンR7には「OpenSSL のバグ」があるとのことです。この記事は”参考“としてご覧ください。 ▼教えてくれた方▼ @tomohiro_mogi wattOS R7 の記事、自動配信で拡散してるんでしょうけど、よくない状況ですね。OpenSSL のバグがあるので、このバージョンを使ってほしくないんです。どうにかならないでしょうか? — ふうせん Fu-sen.|BALLOON (@balloon_vendor) 2014, 5月 27 当記事の自動ツイートを停止しました。 ▼この方のサイト▼ wattOS 日本語解説サイト – wattOSjp ▼上記サイトから引用▼ wattOS R7 および R7.5 は Ubuntu 13.04 ベースになっています。 Ubuntu 13.04 は2014年1月を持ってパッケージの更新が停止
スイッチング技術 OSI参照モデルの第2層である「データリンク層」の技術、スイッチング技術について基本から詳細までわかりやすく解説していきます。 スイッチング技術 コンテンツ ネットワーク機器の処理性能について オートネゴシエーションについて スパニングツリー(spanning tree)のしくみ -スパツリとは?- スパニングツリー(spanning tree)のしくみ -スパツリの基本動作- スパニングツリー(spanning tree)のしくみ -ルートブリッジの選択基準- スパニングツリー(spanning tree)のしくみ -スパニングツリーの状態遷移- スパニングツリー(spanning tree)のしくみ -スパニングツリーのタイマーについて- スパニングツリー(spanning tree)のしくみ -拡張機能について- RSTP(IEEE802.1w) -ラピッドスパニン
まとめ 作ったもの その1 Excelにて、左のセルにCommon Lisp式を書いて評価ボタンをポチっとすれば、右のセルに評価結果(REPLの出力)が表示されるもの その2 Excelにて、フォームを線で繋げて、評価ボタンをポチっとすると別シートに書いてあるCommon Lispのプログラムが作動するもの ねらい ExcelとCommon Lispのrepl環境の融合。(そのまんま) 工夫したところ 最初はrosswellの引数に-eを付けてコマンドラインからフォームの評価として実装したが、その場合*standard-output*に出てきたものしか値を取得できなかった。やり方があるのかな? なので、簡易的なrepl(read-eval-print-roop)のファイルを作ってしまおうと。 そうしたら、rosスクリプトとしても、スタンドアローンな実行ファイルとしてもreplの値を取得でき
qiita.com CommonLispでの開発はこれまでEmacs+slimeが主流でした。 Vimとslimeを組み合わせて使うslimv.vimというのもありましたが、いずれにせよ古いエディターですので初心者には敷居が高いというのが現実です。 最近はSublimeTextやAtomなどの新進気鋭なエディターが人気で、Vimなどから移ってくる人も少なくありません。 そろそろ、その波がCommonLispに来ても良い頃合いだと思います。 今回はエディターとしてAtomを使い、処理系の管理にRoswellを使うという環境を構築するための手順を記します。 Roswellについては深町さんの記事が分かりやすいかと思います。 blog.8arrow.org それでは手順です。 Windowsでの場合を書いていきますが、他の環境でも同様に行えると思います。 各インストール場所は各々の環境に合わせて
Android 8(Oreo)以降について本手順は、Android 7以前のみでお試しいただけます。Android 8以降の機種ではご利用になれませんのでご注意ください。(ご指摘ありがとうございます) Androidは、Linuxカーネルにより動作しています。しかし、Androidは、Linuxカーネルにより動作しているというだけで、たとえば、UbuntuやLinux MintといったLinuxのディストリビューションとして有名なOSとは似て非なるものです。動作するアプリケーションも異なります。 そこで、Androidタブレットなど比較的解像度の高いタブレットを持っているなら試してみたいのが、AndroidのLinux化。Androidでこのような環境を実現するためには、root化(特権)必須と思われがちですが、Google Playで配布されているアプリを使用すれば、擬似root環境で、
どうしても windows 環境を整えたかったので,色々試したらできるようになったものの,正攻法とは言い難いのでメモ書き程度に. もし,もっと筋の良い解決方法をご存知であれば,コメントしていただけると幸いです. neovimのインストール 公式 に従ってインストール. 特につまづくところはないはず. has('python3') の返り値を1にする この Issue に書いてあるように, windows 環境では has('python3') の返り値が 0. python3 系をインストールして, pip3.exe install neovim を実行する. このコメント の設定を init.vim に追加する. let g:python3_host_prog = 'C:\Users\username\AppData\Local\Programs\Python\Python35\pyth
Vim Plugin の vimshell (Shougo’s vimshell at master – GitHub) 上で Clojure を実行させてみた。 実行した環境は Ubuntu 10.04 と Mac OSX Snow Leopard。 vimshell は git でダウンロードする。 $ git clone git://github.com/Shougo/vimshell.git ダウンロードしたファイルをそれぞれ ~/.vim 以下にコピーする。 vimshell 上で Clojure の REPL を動かすには、vimproc を使って非同期実行する必要があるようなので vimproc も git でダウンロードする。 $ git clone git://github.com/Shougo/vimproc.git そして、proc.so を make する。 $ m
これはなにか 逆引きRubyの内容をGolang化しつつあるものです。 当方も初学者なので、いろいろといい加減なコードが含まれると思いますが そのつもりでご参照ください。 Go 1.4.1 で確認しています。Golangは仕様変更が激しいので、都度仕様を確認ください。 なお、ソースコードはGithubに置いてありますので、 何かあればPull Requestでお知らせください。 なお、当初から予定していたファイル系とgoroutineまでなんとか書き上げたので、 ここでいったん更新を終了します(2015/08/12)。 目次 文字列 日付と時刻 数値 配列 マップ 正規表現 ファイル ディレクトリ goroutine Credits RubyTips is founded by TAKEUCHI Hitoshi. HTMLs are generated by Pandoc and deco
books = ['book1.xlsx', 'book2.xlsx'] df_list = [] for book in books: file = pd.ExcelFile(book) # bookを読む for sheet in file.sheet_names: df_list.append(file.parse(sheet)) # シートを順々にデータフレーム化
PandasというかXlsxWriterを使ってExcelファイルを操作してみる。 ちょっと触ってみた感じXlwingsの方が使いやすそうな感じもしたけど、 Pandasが使っているので、こっちを使ってみよう。 ファイルの読み込みについてはこちら 参照 pandas XlsxWriter サンプル 今回はExcelファイルを作成する編。 # import lib import pandas as pd import numpy as np # create data dates = pd.date_range("20130101", freq='D', periods=6) df = pd.DataFrame(np.random.randn(6,4),index = dates, columns = list("ABCD")) # set data fileName = "hoge.xls
Pythonのアットマーク(@)を使った記法であるデコレータについてまとめる。難しいと思われているかもしれないデコレータだが、デコレータの種類(パターン)を意識することが理解の近道だと思ったので今回は種類別にデコレータの簡単な実装例をあげて解説をしていこうと思う。 対象者 Python のデコレータを学んだことがあるがたまに分からなくなる デコレータを自作しろと言われたらスラスラかけるか不安 知っていると良いこと 関数のスコープ 第一級関数 *args , **kwargs のような記法 デコレータ関数の種類分け 以下2つの要因でデコレータ関数の種類分けが可能だと思われる。 引数を取るか否か ラッパー関数を返すか否か よって組み合わせから計4つのパターンが考えられるが、今回は "引数を取らずラッパー関数を返さないデコレータ"を除いた3つを紹介する。1つ除外する理由は簡単すぎて意味がなさそう
概要 この文書では、2015年4月10日にリリースされた 「Emacs 24.5」 を Mac OS X へインストールする手順と、 Emacs 24 で注目の新機能を中心に解説しています。 初期設定、基本操作等に関しては Emacs23 (Cocoa Emacs) 入門から中毒まで を参照してください。 この文書は時々修正、更新されます。 目次 概要 Emacs24 のリリース日 Emacs24 バイナリ Emacs24 のソースからのインストール self-contained バイナリの生成 /usr/local 以下へのバイナリの生成 IMEパッチの適用 experimental/hackers-only パッチの適用 開発版のビルド 設定 .emacs.d/init.el の利用 マウス関連の動作変更 後方互換性に関して 24.5 での非互換性 24.4 での非互換性 ad-adv
これはiRidge Advent Calendarの七日目の記事です。 この記事では、Pythonで実装されたLisp方言のHyを紹介します。 動機 株式会社アイリッジのサーバサイドエンジニア、tanaka.lispです。ウェブとPythonの世界を見てみたいと思い、Pythonの会社であるアイリッジでお仕事しています。 突然ですが、ぼくがこよなく愛する言語はCommon Lispです。業務ではもっぱらPythonを読んだり書いたりするわけですが、PythonはLispではないので、自動インデントに翻弄されたり、if pred1 and pred2: ...をif (and pred1 pred2): ...なんて書いてしまったりと苦労が絶えません。Lisper特有の禁断症状が顔を出すこともあります。S式のことを考え始めたり、おもむろに"Hyperspec 関数名"でググったり、Emacs
この記事は Vim アドベントカレンダー 2016 の21日目の記事です. 最近は Go 言語が大好きすぎて,Vim plugin も Go で書きたい!!! という欲が出てきたので, Vim plugin を Go で書く方法について紹介します. Go で Vim plugin を書くとは? 一口に Go で Vim plugin を書くといっても Go で書いたバイナリがメインで Vim script の autoload 関数などから呼ぶ.例: https://github.com/mattn/vim-filewatcher Go 側からも Vim script を呼ぶ,つまり Vim script で Vim の情報を取得するところなど含めて,ほぼ全部 Go で書く. という 2 段階があると思います.本記事では2の方法も含めて紹介しますがまずは1から行きましょう. 1. Go で
kana/vim-filetype-haskell indentのみ。なので下のSSの色は初期のままです。 前半のコードは http://www.yesodweb.com/book/basics から引用しました。SSはインデント済みの元ソースを再度整形したものですが、全くインデントしてない状態からだとほとんどインデントされません。自分で改行するときは問題ないんですが。 プラグイン側でexpandtabとshiftwidth/softtabstop=2が設定されています。 dag/vim2hs これ一つでsyntax、indent、compiler、折りたたみなどが一気に入ります。 \と.が記号で表示されていますが、背景色がおかしいですね。QuasiQuoteの中もハイライトされていて・・・カラフルです。 インデントは一度全部外した状態から一括整形させてもこうなります。ここではexpand
augroup ghcmodcheck autocmd! BufWritePost <buffer> GhcModCheckAsync augroup END " $VIMRUNTIME/after/ftplugin/haskell.vimに保存しておく Haskellではこまめにコンパイルして型のエラーをチェックするのが重要なので、 自動でチェックできるとかなり捗ります。 また、型推論によって、カーソルが示している関数がどういう型なのかを表示する機能があります。 ソースコードの状態によるので、常に動作するわけでは無いですが、 あれ、これ今どういう型になってんだろう、って時に非常に役に立ちます。 モナドのdo記法の中とか、型がイメージしづらい時などにも使えます。 GhcModType html-template-syntax HaskellのWebフレームワークYesodでは、hamlet
これなにしてんの? 1つ目の例は以下2つのコマンドの組み合わせです。 :bufdo 後続コマンドをすべてのバッファに対して実行します。 :tab split 現在のバッファを新しいタブで開きます。 もうひとつの例はballコマンドの機能です。 :sba[ll] もしくは :ba[ll] もしくは :sun[hide] バッファリストにあって、メモリにロードされているもの全てにウィンドウを割り当てます。 tabをつけると新しいウィンドウがそれぞれタブで開きます。 ballとunhideは、ballの場合Buf/Win Enter/Leaveオートコマンドを実際に該当タブを表示した時に実行する点が違うようです。 単純に:baすると、以下のようにすべてのバッファが表示されるように:splitされます。 指定したバッファを新しいタブで開きたい場合
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く