Haskell (ハイライト付き: http://codepad.org/9Uh5qLqB)
{-# LANGUAGE OverloadedStrings #-} module Main where
-- library: text, http-conduit, xml-conduit import Control.Applicative import Control.Arrow ((&&&)) import Control.Exception import Control.Monad import qualified Data.Text as T import qualified Data.Text.IO as TIO import Network.HTTP.Conduit (simpleHttp) import System.Environment (getArgs) import qualified Text.XML as XML import Text.XML.Cursor (($//), (&/)) import qualified Text.XML.Cursor as XML
commentsUrl :: String commentsUrl = "https://www.reddit.com/r/programming_jp/comments/.rss"
main :: IO ()
main = do
args <- map T.pack <$> getArgs
case args of
(target:) -> do
items <- getItems commentsUrl catch
((SomeException e) -> print e >> return [])
forM items $ (t, d) -> when (any (T.isInfixOf target) [t, d]) $ TIO.putStr $ T.unlines [t, d, "---"]
_ -> putStrLn "検索語句が指定されていません"
type Item = (T.Text, T.Text)
getItems :: String -> IO [Item] getItems url = either throwIO (return . constructItems) . XML.parseLBS XML.def =<< simpleHttp url
constructItems :: XML.Document -> [Item] constructItems doc = map (content "title" &&& content "description") (XML.fromDocument doc $// XML.element "item") where content name c = T.concat $ c $// XML.element name &/ XML.content
せっかくだし、MOOCでお勧めの講義を貼ってくれ。
私のお勧めはCouseraから。
Functional Programming Principles in Scala
Principles of Reactive Programming
関数型言語でわりとメジャーなScalaの作者Martin Oderskyによる講義。
一つ目はかなり良い。Scalaを使った関数型言語一般の紹介といったような内容になっていて、練習問題も非常におもしろい。
Reactive~はまだ途中だけど、Functional~に比べるとちょっと専門的な内容になるようで、なんちゃってプログラマには辛い。
var memo = [1, 1, 1];
function fib(x) { memo[x] = memo[x] || fib(x - 1) + fib(x - 2); return memo[x]; }
print(fib(90));
javascriptで。120ほど足りない。
Boostを使ってみては?
<http://boostjp.github.io/tips/xml.htm>
<http://www.boost.org/users/history/version_1_58_0.html>
たぶんヘッダだけで使える
> これがどういう意味か、どうすれば良いのか教えてください
当該プログラムで使用していないアドレスにアクセスしたのでOSに拒否されちゃったという状態。
大抵はポインタがあらぬ場所を指していてそのままアクセスしちゃった場合。
デバッガで1行ずつ進めるかprintfでどこまで進んだか探った後、問題のある行を見つけてデバッグする。
個人的には Switch の中で React が動いてるよりも驚いた
MINIX とはなんぞやというひとはこちら
デフォルトが指定できていれば選択肢を出す必要がないので
このへんが使えないか試してみるといいかもです
https://code.visualstudio.com/docs/python/environments#_select-and-activate-an-environment
> If you'd like to set up a default interpreter for your applications, you can instead add an entry for python.pythonPath manually inside your User Settings. To do so, open the Command Palette (Ctrl+Shift+P) and enter Preferences: Open User Settings. Then set python.pythonPath, which is in the Python extension section of User Settings, with the appropriate interpreter.
あとターミナル上で動いているシェル (Mac なら iTerm2 とか) は
環境変数 PATH を見てるはずです (echo $PATH
で確認可)
たとえば python foo.py
としたら PATH に含まれるディレクトリの先頭から python がないか探していきます
VSC 内のターミナルだと VSC が PATH などの環境変数をいじってる可能性があるんですが
その場合でも iTerm2 と VSC とで PATH の中身を比べてみるといいと思います
まず /usr/bin に入ってるのは OS X が使ってるので消しちゃだめです
次に /usr/local/bin に入ってるのは /usr/local/opt に入ってる Python の実体へのリンクで
両者とも Homebrew が管理してるやつじゃないかと思います (ここらへん記憶があいまい)
$ ls -l /usr/local/bin/python*
や $ file /usr/local/bin/python
とかしてみてください
結局のところそれ以上いじらなくてもいいと思います
あとは VSC がどう Python インタプリタやライブラリを探すのかだけは把握しといたほうがいいかもです
VSC 使ってないんですがスクショにも出てるこのへんっぽいですね…
ioutil.Discard.Write([]byte(script))
ってなんぞということなんですが
https://golang.org/pkg/io/ioutil/#pkg-variables
> Discard is an io.Writer on which all Write calls succeed without doing anything. > > var Discard io.Writer = devNull(0)
文字列をまったく使わないと実行可能ファイルに書かれることなく
捨てられちゃうってことなんでしょうかたぶん
手元で試してみたら make allnoconfig や make defconfig からの ccache make は爆速なんですが
zcat /proc/config.gz > .config; make localconfig とかだと逆に遅くなりました
KBUILD_BUILD_TIMESTAMP についてはこちらも
https://www.kernel.org/doc/html/latest/kbuild/reproducible-builds.html
kakoune も
# clippy|cat|dilbert|none|off set-option global ui_options ncurses_assistant=cat
とかやるとテンション上がります
なおユーザが設定ファイル等で自由に設定できるようにはならない予定だとか
https://github.com/mawww/kakoune/issues/1753#issuecomment-351277679
確かに System.Delegate.Invoke
から C.f
に「転送」されてはいるけど (本来の意味の「委譲」ではない)
...それってただの関数オブジェクトでは?
あるクラスから別のクラスに転送したい場合、delegate
は単なる関数オブジェクト以上のことはやってくれないので、転送が簡単に書けるというわけではないし
転送や委譲を簡単に実現するための仕組みを持つ言語は意外と少ない気がする
転送は例えば D の <code>alias this</code> とか
委譲はプロトタイプオブジェクト指向な Self、io、JavaScript くらいかな
他にもあったら教えてほしいです