タグ

ブックマーク / www.shido.info (8)

  • Tkinter 入門: 2. Widget を配置しよう

    1. 初めに Tkinter は widget を配置する方法として pack, grid, place の3つの方法があり、 3つとも widget のメソッドとして定義されています。また、配置の枠組みを決める Frame という widget があります。Frame 自身はほとんど何も表示しませんが、widget をまとめるのに使います。 まず、Frame について説明して、それから、pack, grid, place の順に説明していきます。 2. Frame widget を生成するとき、親 widget を指定する必要があります。多くの場合、それは Frame になります。 Frame は widget をグループ化する widget と考えることができます。 Frame は入れ子にすることができ、それによって、プログラムのモジュール化を図れます。 多くの場合、一番上の Fram

    sirocco
    sirocco 2014/08/24
    何もインストールせずに動いた。私はwxFormBuilderとwxPythonで行きますが。
  • Tkinter 入門: 1. Hello World!

    1. Hello world! 1. 初めに Tkinter は Python の標準的な GUI(Graphic User Interface) ツールです。Python は人気のある言語なので、 GUI Tool としては Tkinter のほかに wxPython, Qt, GTK などがありますが、Tkinter が一番 こなれている感じです。つまり、 動作が安定している。 起動が早い。 プログラムが短くてすむ。 の3つが特徴として挙げられると思います。 Tkinter のチュートリアル はすでにかなり存在しているのですが、Tk が巨大なシステムということも有り、 全てをカバーしたものはありません。この一連の文書では、他のチュートリアルがあまり取り上げていない話題を 中心に取り上げたいと思います。特に、widget を変化させることは他のチュートリアルで取り上げられていないので、

    sirocco
    sirocco 2014/08/24
    Tkinter を忘れていたので検索すると、約 888,000 件。 私はPython はwxPythonで行きます。
  • Python のクラスシステム

    1. 初めに この文書の目的は、 Python で自前の class を作るとき、メソッドの第一引数がそのクラスのインスタンスそれ自身 (一般に self と書かれる) であることの理由を説明することです。 他の言語ではメソッドを定義するときに第一引数をインスタンスにするという方法は取り入れておらず、 this などの予約語を使ってインスタンスを表すのが一般的です。 Python だけが、独自の流儀をとっています。 しかし、このことを説明したサイトは見当たりませんでした。 どのサイトもそれは決まりごとだで済ませてしまっています。 しかし、それではどうも Python のクラスシステムを理解した気になれないので、Python でクラスシステムが どのように実装しているか推測しながら、例の self について説明したいと思います。 2. オブジェクト指向プログラミングの復習 オブジェクトとは、

    sirocco
    sirocco 2014/07/31
     「この文書の目的は、 Python で自前の class を作るとき、メソッドの第一引数がそのクラスのインスタンスそれ自身 (一般に self と書かれる) であることの理由を説明することです」
  • Data Structures

    10. 種々のデータ構造 この文章では、大きいデータを Haskell で扱うほう方法について述べます。 Array, FiniteMap, IORef, Array.IO, HashTable を紹介します。 1. リストが関数型言語のデータとして用いられている理由 関数型言語でリストが多く用いられているのは、リストは Cons する分には、データを全て作り直す必要がなく、 Cons した分を付け足してそこのポインターを新しいリストとみなせるからです。 例えば、[1,2,3] というリスト図1のような構造体(コンスセル)の列への最初のポインターとして実装できます。 これに、0 を Cons すると 0 のコンスセルを先頭に付け足すだけで新しいリスト [0,1,2,3] が生成したと して取り扱うことが出来ます。 つまり、コンスセルの先頭へのポインターをリストとすると、新しいリストが少ない

    sirocco
    sirocco 2013/11/03
    HaskellのArrayは参照は O(1) で出来るが 更新は O(n) かかる。Array 型は参照が主なときに使うと良い。Array.IO は参照、更新が O(1) で出来る。(IOUArray Int Double):unboxに出来ない型の配列のときはIOArray。
  • Scheme 入門 17. 遅延評価

    1. 初めに 遅延評価 (lazy evaluation) とは、値が必要になるまで計算しないという計算方法です。 この方法の利点はデータに繰り返し構造を自然に組み込むことができ、 無限を簡潔に表現できることです。これによって、プログラムのモジュール化が促進され、 プログラムが美しくなります。遅延評価の利点については なぜ関数プログラムは重要かを見てください。 全体的に遅延評価を取り入れた言語としては Haskell が有名ですが、 Scheme も部分的に遅延評価を取り入れています。 2. 遅延評価にかかわる関数 R5RS では遅延評価にかかわる関数として次のものが用意されています。 評価法が指示されているが実際の計算が行われていない中間状態をプロミスといい、 プロミスを強制 (force)することで値が計算されます。 (delay proc) proc をプロミスにします。 (prom

    sirocco
    sirocco 2013/07/09
    Scheme の遅延評価。Ruby の次にここでSchemeを学びました。無限リストのCDRの部分(プロミス)を force で値を取り出していく様子が面白い。
  • もうひとつの Scheme 入門

    勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

    sirocco
    sirocco 2012/05/22
    Rubyを深く理解するには Lisp を知るべきだという言葉を聞いて、ここで Scheme を学習しました。今見たら半分くらいしか学習ができてません・・・Orz
  • Scheme 入門 8. 高階関数

    1. 初めに 高階関数は関数を引数にとる関数です。リストの各要素に同じ処理をするマッピング、リストから 条件を満たした要素を取り出すフィルタリング、畳み込み、条件によって要素を並べ替えるソーティングがあります。 高階関数はプログラムのモジュール化を促進します。 個々のケースの再帰関数を書く代わりに、多くの場合に適応できる高階関数を書けば、 プログラムが短くなり、見通しが良くなります。 例えば、ソーティングに高階関数を使うとさまざまな条件で並び替えをすることができ、 並び替えの条件と、並び替えの手順を完全に分離することができます。 SRFI-95 に定義されている sort という関数は2つの引数をとり、最初の引数に並び替えるリスト、 2番目の引数に順序付けをする手続きを引数にとります。 例えば、整数のリストを単純に昇順に並び替えるときは次のようにします。 < が2つの数を比較する関数です。

    sirocco
    sirocco 2011/10/18
  • Haskell のお勉強

    Haskell は関数型プログラミング言語の”標準語”として、1990 年に 誕生 (Haskell 1.0) した比較的新しい言語です。 その後、1999 年に安定した言語定義 Haskell 98 が制定され、 徐々に知名度が高くなっています。 しかし、まとまった日語の解説がほとんど無いので、 簡単な解説記事を書いてみました。 目次 Haskell とは プログラムを動かす 関数を定義する 型 入出力 Haskell で最小二乗法 自前の data と class Monad 探索 種々のデータ構造 Module 詰碁を解く

  • 1