『プログラミングHaskell』の練習問題を解く
スタートHaskell第1回の予習です。
『プログラミングHaskell』の練習問題を解いています。
2章の半ばまでの練習問題です。
1.7 練習問題
1. double (double 2) の結果を算出する他の計算方法を考えよ。
double (double 2) ={ 内側のdoubleを適用 } double (2 + 2) ={ doubleを適用 } (2+2)+(2+2) ={ 最初の+を適用 } 4+(2+2) ={ 次の+を適用 } 4+4 ={ +を適用 } 8
もしくは
double (double 2) = { 外側のdoubleを適用 } (double 2)+(double 2) = { 次のdoubleを適用 } (double 2)+(2 + 2) = { 次の+を適用 } (double 2)+4 = { double を適用 } (2+2)+4 = { 最初の+を適用 } 4+4 = { +を適用 } 8
2. x の値にかかわらず sum[x] = x であることを示せ。
sum[x] = { sumを適用 } x + sum[] = { sumを適用 } x + 0 = { +を適用 } x
3. 数値のリストに対し要素の積を計算する関数productを定義せよ。
puroduct[] = 1 puroduct(x:xs) = x * product xs
そして、その定義を使って product[2,3,4]=24 となることを示せ。
product[2,3,4] = { puroductを適用 } 2 * (product[3,4]) = { puroductを適用 } 2 * (3 * product[4]) = { puroductを適用 } 2 * (3 * (4 * product[])) = { puroductを適用 } 2 * (3 * (4 * 1)) = { *を適用 } 24
4. リストを逆順に整列するように関数qsortの定義を変えるにはどうすればよいか?
qsort[] = [] qsort(x:xs) = qsort larger ++ [x] ++ qsort smaller where smaller = [a|a<-xs,a<=x] larger = [b|b<-xs,b>x]
5. qsortの定義で、<=を<に置き換えるとどのような影響があるか?
ヒント:例として[2,2,3,1,1]を考えてみよ。
qsort[] = [] qsort(x:xs) = qsort smaller ++ [x] ++ qsort larger where smaller = [a|a<-xs,a<x] larger = [b|b<-xs,b>x] qsort[2,2,3,1,1] ={ qsortを適用 } qsort[1,1] ++ [2] ++ qsort[3] ={ qsortを適用 } (qsort[] ++ [1] ++ qsort[]) ++ [2] ++ (qsort[] ++ [3] ++ qsort[]) ={ qsortを適用 } ([] ++ [1] ++ []) ++ [2] ++ (qsort[] ++ [3] ++ qsort[]) ={ qsortを適用 } [1] ++ [2] ++ [3] ={ qsortを適用 } [1,2,3]
Learn You a jQuery for Great Good!
今日からjQueryの練習も兼ねて、jQueryのソースをブログに書いていこうと思います。
jQuery.map() | jQuery API Documentation
最初はmapです。他の言語によくあるmapと同じです。
1.6からはarrayOrObjectを引数に指定できるようになりました。
以下、使用例。(サンプルを少し改造しただけです。)
<!DOCTYPE html> <html> <head> <style> div { color:blue; } p { color:green; margin:0; } span { color:red; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <div id="old"></div> <p></p> <span></span> <div id="new"></div> <script> // version added 1.0 var arr = ["a", "b", "c", "d", "e"]; $("div#old").text(arr.join(",")); arr = jQuery.map(arr, function(n, i){ return (n.toUpperCase() + i); }); $("p").text(arr.join(",")); arr = jQuery.map(arr, function (a) { return a + a; }); $("span").text(arr.join(",")); // version added : 1.6 var dimensions = { width: 10, height: 15, length: 20}; dimensions = $.map(dimensions, function(value, index){ return value *2; }); $("div#new").text(dimensions.join(",")); </script> </body> </html>
jQuery git pull + git log
jquery
コミット無し。
jquery-ui
Widget: Update demo to work with 1.6 · e55e1fb · jquery/jquery-ui · GitHub
commit e55e1fb5bf95412a3a5c
widget のデモ。className から "class" に変更。
Accordion tests: Cleanup. · 7134033 · jquery/jquery-ui · GitHub
commit 71340333659577644594
コーディングスタイルの修正。
Spinner: Cleanup, use ._bind() and ._hoverable(). · 6981cab · jquery/jquery-ui · GitHub
commit 6981cab9c40a7b93d675
._bind() と ._hoverable()の変更。
Spinner: Don't stop propagation for keydown events. · c4bd14f · jquery/jquery-ui · GitHub
commit c4bd14f1bb66f48eccbd
keydown の修正。
Spinner: Invoke _markupOptions() before _draw(). · c1da941 · jquery/jquery-ui · GitHub
commit c1da941f9f664e3dabe1
_markupOptions() の後に _draw()を異動させた。
Spinner: Use _getCreateOptions() instead of custom _markupOptions(). · e4c0f20 · jquery/jquery-ui · GitHub
commit e4c0f202c8f29a8038d9
spinner の max, min, stepの変更。
Spinner: Don't stop propgation of mousedown. Added TODOs. · 4d2ac1a · jquery/jquery-ui · GitHub
commit 4d2ac1abca64ec19407f
spinner の mousedown の return の値の変更。コメントの変更。
Spinner: Don't clear invalid values on blur (but clear the value option)... · fb5cad3 · jquery/jquery-ui · GitHub
commit fb5cad37ceb37418d39e
spinner の値のとりかたの変更。
Spinner: Keep the focus on the text field even when using the buttons. · 64cdaa8 · jquery/jquery-ui · GitHub
commit 64cdaa82e6736c4b06f6
テキストフィールドのフォーカスを保つための変更。
Spinner: Don't set focus on stop, focus should already be correct. Alway... · 08a7a11 · jquery/jquery-ui · GitHub
commit 08a7a11a1b02ca33cb27
spinnerのフォーカスの修正。
Spinner: Only trigger change when the field has blurred and the value ha... · 2b22bbd · jquery/jquery-ui · GitHub
commit 2b22bbdd6a5ed5206f90
Spinner の keyupの修正。
Spinner tests: Cleanup. · 160a301 · jquery/jquery-ui · GitHub
commit 160a301d96c09403b87e
Spinner のテストファイルの修正。
Spinner: Define defaults for callbacks. · b10c4cd · jquery/jquery-ui · GitHub
commit b10c4cdab5faf88c8f64
Spinner のコールバックの値にnullを追加。テストファイルも修正。
Spinner: Added comment with formula that approximates current incrementi... · e4898fd · jquery/jquery-ui · GitHub
commit e4898fdfc6877648d8d9
コメントの追加。
Merge branch 'spinner-getCreateOptions' · e9cdd57 · jquery/jquery-ui · GitHub
commit e9cdd576f4327f947b00
ブランチのマージ。
LtG T-shirt 注文しました。
LtG T-shirt 注文しました。
私は白地に黒模様でsuccを注文しました。
copyと迷ったのですが、結局、succの方がかわいいのでsuccを選びました。
ちなみに、注文は8/7までなので、すでに終了しています。
jQuery git pull + git log
コミットの量が多すぎ!今回はjqueryのみ。
jquery
Merge pull request #449 from rwldrn/9913 · dd3662d · jquery/jquery · GitHub
Merge pull。duplicate test を削除。
Merge pull request #448 from rwldrn/9912 · 5f54cb7 · jquery/jquery · GitHub
テストファイル修正。duplicate の名前の変更。
Merge pull request #447 from rwldrn/9914 · d7681a1 · jquery/jquery · GitHub
テストフィアル修正。空テストを削除。
Merge pull request #443 from rwldrn/minimal-license · 566f958 · jquery/jquery · GitHub
ライセンステンプレートの修正。
Merge pull request #419 from rwldrn/9630 · 6a3395a · jquery/jquery · GitHub
commit 6a3395afcdb958a25f9a
.hasClass()の修正。.contents().hasClass()のテストの修正。
Merge pull request #451 from scottjehl/master · 1846551 · jquery/jquery · GitHub
commit 1846551a0cbe346ea22f
nokia のエラー修正。
Merge pull request #431 from DenisKnauf/master · 2e298d9 · jquery/jquery · GitHub
commit 2e298d92dbba3f9984a7
ajaxの修正。serializeArrayのfilterに使われている部分にdatetime-localを追加。
Merge pull request #432 from rwldrn/9794 · 59936dc · jquery/jquery · GitHub
commit 59936dc04d4dd2731874
data の
// Check for both converted-to-camel and non-converted data property names
// If a data property was specified
の追加。
Merge pull request #367 from gnarf37/index-optimize · 3cfb134 · jquery/jquery · GitHub
commit 3cfb134ab41d204a7197
.index()の引数が無かった場合の処理の修正。テストファイルの修正。
Make the tabIndex hook first a propHook and add it to attrHooks for back... · fd4ee2a · jquery/jquery · GitHub
commit fd4ee2a39752cc40e35f
tabIndex から propHookへ変更。テストファイルの修正。
Now using getAttributeNode in all attribute cases in IE6/7, which normal... · 8c2cb49 · jquery/jquery · GitHub
commit 8c2cb49917fc1082abac
formHook から nodeHook への名前変更。テストファイルの修正。
Remove unnecessary regex · 700c16b · jquery/jquery · GitHub
commit 700c16b0859a8c982869
rinvalidCharの正規表現が無用だったので、削除。
Add back the background: none setting to avoid any possible crashes in I... · 5c4a9cc · jquery/jquery · GitHub
commit 5c4a9cc001fcd803efa6
IE関連の修正。backgroundにnoneと入れない表示が崩れる問題の修正。
Add test page for crashing IE8 when the testElement in support has a bac... · e18cad6 · jquery/jquery · GitHub
commit e18cad6f88c7b3151722
testElementファイルの追加。
Adds failing tests for #9413 · 7daf44b · jquery/jquery · GitHub
commit 7daf44b5ab1b5fbae9f8
フィルタリング・テストの追加。
Supports interoperable removal of hyphenated/camelCase properties. Fixes... · 2ce5e95 · jquery/jquery · GitHub
commit 2ce5e95951044ddfc06c
thisCacheの追加。
Fixes assertion counts and dom element fixture issue · 13647e9 · jquery/jquery · GitHub
commit 13647e94e0141757a17c
テストファイルのコーディングスタイルの修正。
Adds failing tests · 22028e4 · jquery/jquery · GitHub
commit 22028e403f6ae68b5985
テストファイルの修正。
Improves support for arbitrary numbers in data keys. Fixes #9318 · e7af6a2 · jquery/jquery · GitHub
commit e7af6a296b75b8583175
dataのkeysが、キャメルケースの"-"の後の文字がアルファベットのみだったのが、数字でも大丈夫なように修正された。
Merge pull request #454 from rwldrn/test-suite-fix · caa47c3 · jquery/jquery · GitHub
commit caa47c377474866f9ee3
テストファイルの修正。
Merge pull request #455 from rwldrn/9413 · 37254ba · jquery/jquery · GitHub
commit 37254bab91b6e0067160
Merge pull data.jsの修正。
Merge pull request #456 from rwldrn/9318 · b22c904 · jquery/jquery · GitHub
commit b22c9046529852c7ce56
Merge pull request #456 from rwldrn/9318
"Learn You a Haskell for Great Good!"の日本語訳が出版される!?
Learn You a Haskell for Great Good! の日本語訳が出版されるそうです。(某Haskellerの情報より)
私は原書のPDFを購入したのですが、日本語訳がでたら、そちらも購入しようと思います。
"Learn You a Haskell for Great Good!" はwebで無料で読めるのですが、私はiPadで読む用にPDFを購入しました。
Learn You a Haskell for Great Good!: A Beginner's Guide
- 作者: Miran Lipovaca
- 出版社/メーカー: No Starch Pr
- 発売日: 2011/04/18
- メディア: ペーパーバック
- 購入: 1人 クリック: 1,024回
- この商品を含むブログ (7件) を見る
jQuery git pull + git log
今日のニュースは jquery-mobileが"Releasing 1.0b2."になった事です。
Releasing 1.0b2.
jquery-mobileのコミットが多すぎるので、途中までです。
jquery-ui
Accordion tests: cleanup. · 4415e99 · jquery/jquery-ui · GitHub
Accordion テストのjsファイルを外部ファイルにした。
Menu: Added a navigation menu demo which shows how to handle keyboard na... · d912c30 · jquery/jquery-ui · GitHub
ナビゲーションメニューのデモページ作成。
Tests: Cleanup. · 4adb902 · jquery/jquery-ui · GitHub
テストファイルのソースをキレイに修正。
Menu tests: Cleanup. · cff6b56 · jquery/jquery-ui · GitHub
テストファイルのソースをキレイに。内部に書いてあったjsを外部ファイルにした。
jquery-mobile
Minor tweaks. · b77bf47 · jquery/jquery-mobile · GitHub
Minor tweaks.
微調整。空行をいれて?
Moving this call to setDefaultTransition to run at DOM ready, because ca... · 4c01267 · jquery/jquery-mobile · GitHub
setDefaultTransition の call の方法を変更。
wrapped in parens for clarity · a48128f · jquery/jquery-mobile · GitHub
wrapped in parens for clarity
括弧を追加。
Core Style Conformance updates; jquery.mobile.support.js · 953f0cd · jquery/jquery-mobile · GitHub
コーディングスタイルの変更。
Merge pull request #2199 from rwldrn/jquery.mobile.support.js · 6c08d64 · jquery/jquery-mobile · GitHub
Merge pull request #2199 from rwldrn/jquery.mobile.support.js
Core Style Conformance updates; jquery.mobile.support.js. Thanks rwldrn!
コーディングスタイルの変更。