ブックマーク / bugrammer.hateblo.jp (4)

  • アナグラムを素数の積で求めると簡単(ではないけど)判定できるよって話 - Line 1: Error: Invalid Blog('by Esehara' )

    今日の風景 つくりおきはじめました。 はじめに 元々は 永和システムマネジメントの技術面接で出された問題らしい。こく難しく言えば「ある文字列」(この文字の集合をAとすると)と「ある文字列」(この文字の集合をBとする)とした場合、このAとBの文字の集合が一緒であるかどうかをどのように判定するか、という問題らしい。もうすこし簡単に言えば、Bの文字列はAの文字列かどうかをどのように判定するかということである。 この問題の解き方は簡単で、先に言ってしまえば次のようになる: def anagram(s1, s2) s1.chars.sort == s2.chars.sort end これは、順序を考慮しない集合の場合、同じ要素が一対一になっていればいいということなわけだから、とてもシンプルでわかりやすい解答である。ただ、元のエントリが「Scheme」で書かれているので、Redditの日語Lispコ

    アナグラムを素数の積で求めると簡単(ではないけど)判定できるよって話 - Line 1: Error: Invalid Blog('by Esehara' )
  • プログラムにおける「関数」とは何かについて、自分なりのまとめ - Line 1: Error: Invalid Blog('by Esehara' )

    近況 自宅サーバーが起動しなくなったため、中身に保管してある電子書籍PDFが取り出せず、大量の知性が失われている。 要旨 以前に「関数型プログラミングの初心者」に向けて質問したときに、そもそも関数とはなにかについてわからなかったという質問があった。自分も、具体的に関数とはなにか、というと説明に困ることがある。そこで、今回のブログでは「関数」とは何かについて、自分なりにまとめたことを書く。 はじめに 知り合いの技術者は、「実は関数の考え方について、一年間くらい馴染めなかった」と言っていた。現在では、開発をバリバリやっているような人であり、自分も尊敬しているのだけれど、そういう人でも「関数」という考え方について、実はそれほど馴染めなかったということを聞いてビックリしたりしていた。 とはいえ、そういう風に「そうなのか」と納得している俺も、実際のところ、では「関数」とは何か、というのを説明できる

    trashtoy
    trashtoy 2015/08/14
    まだBASICしか知らなかった頃、Cが「すべてが関数でできてる」と言われて全然ピンと来なかったのを思い出した
  • 今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )

    近況 打ち捨てられた過去について 要旨 この記事を興味深く読む一方で、やはり違和感を覚える人も多くいるようで、自分もその一人だった。恐らく、この違和感は、「抽象化」が「具体性を奪取していくもの」といったような対立項として述べられているからだ、というように思われる。しかし、果たして具体性無しに「抽象化」することが有益なことなのだろうか。それが一つの違和感のように思われる。 文 プログラミングの世界には、YAGNI原則(You ain't gonna need it)というものがある。また、YAGNIという言葉を使わなくても、「過度な汎用化が足を引っ張る失敗例」というのは、プログラマとしての心構えを書いたの中で、ちらほらと自嘲気味に述べられることがある。 僕も、一度そのような失敗例を見たことがあるけれど、なぜこういう失敗が起こるのか。確かにデザインパターンで組み立てられたアーキテクチャは「

    今日のポエム: なぜ、その抽象化は失敗してしまうのか - Line 1: Error: Invalid Blog('by Esehara' )
    trashtoy
    trashtoy 2015/08/06
  • スタートアップで働くプログラマが、非プログラマの皆さんにお願いしたいこと - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 自分の基はプログラマとして、サーバーサイドのサービスをゴリゴリ書くのが仕事だ。しかし、仕事をするとなると、いろいろな人が絡んでくる。もちろんマーケティング担当や戦略担当の人もいる。そして、僕はそういう人たちが実際にやっていることはわからないけれど、それはたぶんそういう人たちが「プログラマってどういう仕事なのか?」ということがわからないのは一緒なのだろうと思う。もちろん、お互いに相手の仕事を理解して、それに合わせてどういう風なことを共有して作ってもらうか、というのを話し合う機会は重要だ。 たぶん、自分たちがどのように仕事をしていて、どのように情報を共有してもらえれば、仕事がスムーズにいくのか、ということを説明しないことには、たぶん「プログラマが理解されない」ということを嘆いても仕方ないと思う。なので、まず自分が「プログラマとしての自分」が考えていることを共有する必要があるなあとい

    スタートアップで働くプログラマが、非プログラマの皆さんにお願いしたいこと - Line 1: Error: Invalid Blog('by Esehara' )
    trashtoy
    trashtoy 2014/03/05
  • 1