問題解決大全――ビジネスや人生のハードルを乗り越える37のツール
- 作者: 読書猿
- 出版社/メーカー: フォレスト出版
- 発売日: 2017/11/19
- メディア: 単行本
- この商品を含むブログ (13件) を見る
問題解決大全――ビジネスや人生のハードルを乗り越える37のツール
タイトルは初見だと自己啓発風ですが、実際には言語学の本です。
エスニック料理店や出先での対話形式という体で、言語学トークをするという構成になっています。
どんな言語でも100時間ほどである程度構造を理解できるようになるフレームワークも紹介されています。
もっとも、著者のお二人は言語学者というより、趣味と実益を兼ねて多言語習得をした商社系の方々なので
必ずしも学術的な裏付けがあるわけではないのですが……そういう方がいいケースっていうのもありますよね。
このブログで度々言及しているヨーロッパ言語共通参照枠(CEF)についてはあまり言及がありませんでした。
100時間でどのレベルか分かると、少し嬉しかったかも……。
例文を見る限り、B1「習得しつつある者・中級者」とかそれくらいのようには見えました。
本家の基準だと300時間ほどとなっているので、必ずしも一致はしないかもしれませんが……。
shuzo-kino.hateblo.jp
中公新書から出ている、言語学入門の本です。
黒田龍之介先生の別の本を読んだので、もうちょっと素人よりの本紙を見て見ました。
諸外国語から日本語、さらに漢文の事例を使って言語というものを考えていくスタイルです。
知らない言葉が結構でてきて面白かったです(小学生並みの感想)
「全然」が明治時代には肯定語と一緒に使われていた事例をあげて、
最近の「全然」は否定と繋げなくてはならないという風潮を指摘する部分が
そこかはとなくパオロ・マッツァーリノ氏の「誰も調べなかった日本文化史」を彷彿とさせました。
shuzo-kino.hateblo.jp
Lispの強みといえば、S式です。
これをシリアル経由で取得できれば外部のつよつよデバイスで計算したS式を手元で受け取り評価という脳汁出る動きができます。
文字列で記述された要素を変数aにぶち込んでみます。
1213> (defvar a "(* 7 8)") a
これをprintしてもevalしても……当然、文字列として扱われます。
1205> (print a) "(* 7 8)" "(* 7 8)"
1205> (eval a) "(* 7 8)"
ここで、read-from-stringを介すと……
文字列がS式と解釈されます。
1205> (print (read-from-string a)) (* 7 8) (* 7 8) 1205> (eval (read-from-string a)) 56
uLispの"let"と"let*"の違い
letはローカル変数を定義する関数です。
ただ、uLispにおいては関数定義の外に結果を出す場合にもエラーを吐かれます。
(defun tst () (let ((a 7) (b a)) (print a) (print b)))
実行すると
uLisp 2.7 1213> (defun tst () (let ((a 7) (b a)) (print a) (print b))) tst 1187> (tst) Error: 'a' undefined
こういう場合は"let*"を使い、事前に定義済みの変数を参照できるようにします。
(defun tst (a) (let *((a 7) (b a)) (print a) (print b)))
1186> (defun tst () (let* ((a 7) (b a)) (print a) (print b))) tst 1187> (tst) 7 7 7
uLispの関数
文字列
(subseq string start [end])
Lisp的に書くと……
(defun day (d) (subseq "MonTueWedThuFriSatSun" (* 3 d) (* 3 (1+ d))))
実行するとこんな塩梅
uLisp 2.7 1213> (defun day (d) (subseq "MonTueWedThuFriSatSun" (* 3 d) (* 3 (1+ d)))) day 1175> (day 2) "Wed" 1175> (day 1) "Tue"
Puthonで書くと、こんな感じの記述ですかね……。
"MonTueWedThuFriSatSun"[3:6] 'Tue'