The following are appendices from Optics By Example, a comprehensive guide to optics from beginner to advanced! If you like the content below, there's plenty more where that came from; pick up the book!
言語アップデートのスプレッドシートが公開されましたので、この文書は2019年7月3日をもって更新を停止します。
透明性を持って広く議論を行うため今後の更新等につきましては haskell-jp/atcoder-haskell-resources リポジトリに移りましたので、そちらをご参照ください。
- 本文書の内容は reddit または haskell-jp 公式 slack の random チャンネル等の内容に基づきます。
{ | |
"awayIndicator": "#e0b333", | |
"buttonBg": "#859900", | |
"buttonColor": "#586e75", | |
"centerChannelBg": "#fdf6e3", | |
"centerChannelColor": "#839496", | |
"codeTheme": "solarized-light", | |
"linkColor": "#268bd2", | |
"mentionBj": "#dc322f", | |
"mentionColor": "#ffffff", |
これは卜部さんの優秀なプログラマーになるためのコツに影響されて書いたものです。
自分を構成する要素は、大きい順にシステムエンジニア、プログラマ、研究者だと思っています。でも、おそらく給料は「研究者」として払われているため、研究者として生きていくコツとしました。僕はさほど優秀とは言えませんが、とりあえずそれなりに長いことそれで食っています。大学の教授のウェブサイトに「研究者としてのコツ」みたいなことが書いてあることがありますが、これには「既に大学の教授になっている人が書いている」という強烈なバイアスがかかっています。もちろん参考になることも書いてありますが、「死ぬほど研究しろ、研究のことだけ考えろ」的な文章が多い印象です。これは普通の人にとって役に立たない助言です。これは平均的な研究者として生きていくための戯言、ポエムだと思ってください。
-- where the target number k of clusters is set to 4. | |
-- What is the maximum spacing of a 4-clustering? | |
import qualified Data.ByteString.Char8 as BS | |
import Control.Monad | |
import Control.Monad.ST | |
import qualified Data.Heap as H | |
import System.Environment | |
import Data.Array.MArray | |
import Data.Array.ST |
function groupBy( array , f ) { | |
var groups = {}; | |
array.forEach( function( o ) | |
{ | |
var group = JSON.stringify( f(o) ); | |
groups[group] = groups[group] || []; | |
groups[group].push( o ); | |
}); | |
return Object.keys(groups).map( function( group ) | |
{ |
この記事はHaskell Advent Calendar 2012の26日目の記事です。Haskell Advent Calendar初参加です。コメントなどお待ちしております。
HaskellではString([Char]の別名)が文字列の基本型で、これはリストであるためにパターンマッチ・再帰やPreludeやData.Listにあるリスト用の関数を使って処理ができるという利点があります。ただし、実用上はパフォーマンスが低いため、TextやByteStringが代わりに用いられます。Textはいわゆるユニコード文字列、ByteStringはバイト列という区別です。この使い分けに関してはちょうどAdvent Calendarの@brain_appleさんのこの記事で解説されました。StackOverflowでの質問も参考になります。
Hackageを見ると、
Latency Comparison Numbers (~2012) | |
---------------------------------- | |
L1 cache reference 0.5 ns | |
Branch mispredict 5 ns | |
L2 cache reference 7 ns 14x L1 cache | |
Mutex lock/unlock 25 ns | |
Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
Compress 1K bytes with Zippy 3,000 ns 3 us | |
Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |