aiya000のブックマーク (4)

  • 部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 追記ただし, ここで説明している内容は基的にC#やKotlinでも成立する(はずな)ので「なぜこれらの言語では+/-の記号を使わないのか」を説明するものではありません. 個人的には+/-の方がわかりやすいと思うし, out/inの記法は扱っている概念が簡単であるかのような誤解を生む(悪く言えば騙す)のでどちらかと言うと嫌いです. 発端 こういう話題がありました. Scala は共変が + で、反変が - なので理論重視? なのに対して、Kotlin と TypeSc

    部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
    aiya000
    aiya000 2023/11/03
    Scala, C#, Kotlinには変性がある。Haskellにはない。いかにHaskellが簡単な言語かわかりますね。皆さんあとはよろしくおねがいします。
  • vim8,neovimで補完使うならdeopleteよりvim-lsp使おうぜ - Kutimotiの競プロメモ

    つい最近,vscodeC++導入の記事を書きました kutimoti.hatenablog.com vscodeMicrosoftが作ったC++拡張機能にはLanguage Server Protocol(LSP)という技術が使われています qiita.com LSPは他の言語にももちろん対応しています(C#のOmniSharpとか) これが補完などの処理を行ってくれます neovimC++補完 今まで僕は,deoplete-clangやdeoplete-xclangを使ってきましたが, 「(多分)毎回"clang"の呼び出しを行っているのが原因で補完などの動作がvscodeに比べて遅い」 印象を受けていました vimでもLSPを使うものが無いかと調べると出てきました github.com (作ってる人がMicrosoftの方) ここを見れば簡単に導入できると思います install

    vim8,neovimで補完使うならdeopleteよりvim-lsp使おうぜ - Kutimotiの競プロメモ
    aiya000
    aiya000 2019/06/20
    deopleteより……というか、deopleteでvim-lspを使う、deoplete-vim-lspっていうプラグインがあるよ! https://github.com/lighttiger2505/deoplete-vim-lsp vim-lspは補間プラグインではないので!
  • Haskell で高速なプログラムを書くときに注意すること | 雑記帳

    Haskell は表現力が高いプログラミング言語だが、気をつけないと非効率的なコードが生成されてしまうことがある。では、どういうところに気をつければ高速なコードになるのか。少し調べてみた。 この記事に書くのは、あくまで原則とかそういうやつなので、コンパイラーの最適化(正格性解析、インライン化、自動ボックス化解除)によっては、自前で工夫しても意味がない、つまり、コンパイラーに任せた場合と同じ結果になるかもしれない。どういう場合に早くなるかはケースバイケースなのだ。 ここで扱うトピックは大きく分けると、 正格評価 型クラスの特殊化 Unboxed 値 その他 となる。あくまで自分用の備忘録であり、特に突飛なことを書いているつもりはないので、知ってる人はアーハイハイという感じで読み飛ばしてしまえるだろう。また、筆者の理解が浅く、誤解に基づいたことを書いているかもしれないので、あまり信じすぎないよ

    aiya000
    aiya000 2019/02/11
  • JitPack.ioでGitHub上のJavaプロジェクトを簡単にライブラリとして参照する · tehepero note(・ω<) 2.0

    Maven Centralに辟易しているpom職人のみなさまこんにちは。 今日はJitPack.ioというサービスを紹介しますよ。 JitPack.ioとは JitPack.ioは一言で言うと、GitHub上のJavaプロジェクトをライブラリとして参照できるようにするサービスです。Maven Centralなどのリポジトリは無いけど、GitHubのあるプロジェクトをちょっと参照して試してみたいとかありますよね。そのリポジトリのJarを自力で作ったり、そのままソースをコピーして参照したりと色々と辛みのある作業になりますが、JitPack.ioはそれをシンプルに解決してくれます。 まあとりあえず実践して、方法と仕組みを理解してみましょう。 参照するリポジトリ ライブラリとして参照するリポジトリとして、jitpack-libraryというのを作ってみました。これで実験します。 jitpack-l

    aiya000
    aiya000 2018/05/18
  • 1