トップページ > プログラム > 2014年09月09日 > u4pMEKRn

書き込み順位&時間帯一覧

6 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000000225



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
テスト駆動開発はなぜ流行らなかったのか?2
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
集合論に基づいた言語を作りたい
推薦図書/必読書のためのスレッド 74

書き込みレス一覧

テスト駆動開発はなぜ流行らなかったのか?2
785 :デフォルトの名無しさん[sage]:2014/09/09(火) 00:08:59.98 ID:u4pMEKRn
>>783
> それはテスト駆動ではないです

もちろん、その通りだよ
自分は TDD 否定派だからね

ついでに言えば、ラティショナルうんたらかんたらとか
エクストリームむにゃむにゃとかアジャイルふがふがみたいな、
中身の無い精神論に基づく設計手法にも否定的だ
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
366 :デフォルトの名無しさん[]:2014/09/09(火) 22:34:07.70 ID:u4pMEKRn
>>358
「(データ型の)型付け」と「メソッド束縛」は、分けて考えるのが一般的だね
たとえば Objective-C は「動的型付け(Smalltalk)と静的型付け(C)のハイブリッド」で
かつ「動的メソッド束縛」になる

そして、あるオブジェクトがメソッドを持つか否かを検査するのはメソッド束縛の役目になる
たとえば Java/C++ のような静的メソッド束縛ではコンパイル時にエラーが検出されるけど、
Smalltalk/Objective-C のような動的メソッド束縛では実行時にエラーが検出される(=遅延束縛)

ただし Objective-C のハイブリッドが例外的であって、大半の言語であれば
「静的型付けであれば静的メソッド束縛」だし「動的型付けであれば動的メソッド束縛」だから、
暗黙の文脈下だと単純に「静的」または「動的」と表現することが多い
【Python】スクリプト バトルロワイヤル46【pl,rb,php,js】
368 :デフォルトの名無しさん[sage]:2014/09/09(火) 22:46:07.00 ID:u4pMEKRn
>>363
いや、違う
型検査そのものを指して、型付け(の厳格性)が強い弱いと評価するのが一般的だね

たとえば型付けが弱い JavaScript では、以下のようになる
  $ js
  js> "A" + 1
  A1
  js> arr = []

  js> arr[-1.23] = 100
  100
  js> print(arr["-1.23"])
  100
  js>
同じ事を型付けが強い Python で実行すると、以下のようになる
  $ python2
  Python 2.7.8 (default, Jul 28 2014, 00:07:22)
  [GCC 4.2.1 (Apple Inc. build 5574)] on darwin
  Type "help", "copyright", "credits" or "license" for more information.
  >>> "A" + 1
  Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
  TypeError: cannot concatenate 'str' and 'int' objects
  >>> arr = []
  >>> arr[-1.23] = 100
  Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
  TypeError: list indices must be integers, not float
  >>>
集合論に基づいた言語を作りたい
204 :デフォルトの名無しさん[sage]:2014/09/09(火) 23:09:21.92 ID:u4pMEKRn
>>201
ほう、「>>158に書いてある程度の永続データ構造は
不純関数型どころか手続き型でも普通に使われている」のか、それは知らなんだ

関数型を名乗る言語の大半では(=少なくとも自分の知る限りすべての関数型言語では)、
始祖 Lisp の時代から本質的に永続性を持つリストと呼ばれるデータ構造を基本としている
だから関数型言語では、普通に(=暗黙のうちに)永続データ構造が使われていると言える(>>172)

一方、手続き型言語で基本的なデータ構造といえばレコード(=構造体)と配列だと思うけど、
>>201の住んでいる異次元世界では、レコードや配列が永続データ構造で実装されているんだね
興味深い話だから、ぜひ kwsk 説明してもらえると嬉しいなあ....(棒
推薦図書/必読書のためのスレッド 74
45 :デフォルトの名無しさん[sage]:2014/09/09(火) 23:48:26.31 ID:u4pMEKRn
>>42
目次を見ると表示的意味論/ラムダ式/SKIコンビネータといった
関数型言語に深く関連したキーワードが並んでいるから、
本来は Scheme/Standard ML/Haskell あたりで解説するのが正道だと思う

ただし幅広い読者層を対象にするならスクリプト言語のほうがとっつきやすいだろうから、
メジャーな汎用スクリプト言語の中では最も関数型プログラミングに適している
Ruby が選ばれたのもまた妥当な判断ではないかと....

ともあれ目次を見た範囲では気に入った、発売予定日(9/18)が待ち遠しいね


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。