タグ

qiitaとclojureに関するnabinnoのブックマーク (61)

  • ClojureでYAML入門 - Qiita

    <参考> Clojure環境を導入(mac) https://qiita.com/FumiIwase/items/228a9c8dfdfbcde02d92 Visual Studio Codeのインストール ここ (https://qiita.com/akiko-pusu/items/185f4fd8484ecd3b3243) とか、 ここ (https://www.karelie.net/install-vscode-mac/) を見ながらインストールしました。 Clojure開発環境のセットアップ VSCodeでClojureアプリを開発するための環境をセットアップします。 まずは、Calvaをインストール https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode から[install]をクリッ

    ClojureでYAML入門 - Qiita
  • Clojureで書いたプログラムを速く起動する。 - Qiita

    この記事を参考にしました。 Clojureは数ある言語の中でも起動が遅い。そのため、実行時間が短いプログラムでは、Clojureの優れた実行速度が生かせない場合がある。 そんなことにもんもんとして、速くならないものかと実験してみた結果を記録しておく。 結論としては、GraalでNativeビルドが一番速い。 また、今回は実験していないが参考記事で説明されているDripもNativeビルドほどではないが速い。 環境等 AWS EC2 t2.microを使用した。 ubuntu@ip-172-31-37-182:~$ uname -a Linux ip-172-31-37-182 4.15.0-1021-aws #21-Ubuntu SMP Tue Aug 28 10:23:07 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

    Clojureで書いたプログラムを速く起動する。 - Qiita
  • Clojureで「Hello World」 - Qiita

  • Clojure/ClojureScript関連リンク集

    Clojure/ClojureScript入門者の方の学習の参考に(もしくは布教のために)、開発環境からコミュニティまでの基的な情報をまとめてみました。 「参考」として挙げているのは個人的にオススメのブログ記事/スライドなどです。 随時更新していますが、コメントや編集リクエスト、Twitterなどで良さそうな情報源を教えていただければ反映していきます。 Clojure公式 Clojure 日語版: clojure-site-ja GitHub 参考 Rich Already Answered That!: Clojureの設計判断についてのRich Hickeyの発言まとめ matthiasn/talk-transcripts: Transcripts of Clojure-related talks: Clojure関連の有名な発表のトランスクリプト "Simple Made Eas

    Clojure/ClojureScript関連リンク集
  • Clojure ファーストインプレッション - Qiita

    Clojure 初学者が感じた Clojure の基礎文法に関するつぶやき 参考情報 = 私のスペック: プログラミング歴 10年, lisp経験なし, 関数型経験あり, 4clojure の elementary & easy は全て解いた, 「clojure for brave and true」 で学習 infix でないことの強み +, = や and など他の言語では infix な演算子が Clojure では prefix になっており、可変個の引数を受け付ける。これにより、他の言語での sum, product というような関数は不要になる: (+ 1 2 3) , (apply + [1 2 3]), (* 1 2 1), (and true false false)。 名づけが絶妙 特に seq まわりの関数に当てはまるが、反復操作の処理パターンを類型化し、名前をつける

    Clojure ファーストインプレッション - Qiita
  • clojureでスクレイピングする - Qiita

    使用するライブラリ http-kit enlive http-kitはhttpクライアントとして使います。 enliveはhtmlをparseするのに使います。 プロジェクトにライブラリを追加 dependenciesにライブラリを追加してインストールします。

    clojureでスクレイピングする - Qiita
  • GaucheのExplicit-renamingでスレッドマクロ - Qiita

    ちょっとしたテキスト処理や日々の仕事で自分だけが使うコマンドラインツールの作成にScheme……というか、Gaucheはとても便利です。みなさんもそうですよね? そんなみなさんであれば、きっと常にuseしたくなるオレオレマクロモジュールがあるにちがいありません。濫用するなと厳しく教えられるマクロではありますが、自分しか使わないごく小規模のプログラムであれば気にする必要もないでしょう。オレオレマクロと喧嘩はLISPの華、書くのが楽なほうがよっぽど大事なわけですから。 もちろん、私にもそんなマクロがいくつかあります。「標準のifをArcライクなifで上書きする」という影響範囲がめちゃくちゃ大きいやつとかもお気に入りなのですが、今回はそれは置いておいて、Clojureのスレッドマクロの亜種を晒すことにします。 仕様 「亜種」と言ったとおり、実はClojureにあるものそのままではありません。自分

    GaucheのExplicit-renamingでスレッドマクロ - Qiita
  • Clojure 頑張る - Qiita

    1. 関数 1-1. 匿名関数 JS でいうところの x => x + 1 は、Clojure では #(+ 1 %) となり、x => x % 2 === 0 は、#((= 0 (rem % 2)) となる: (map #(+ 1 %) [1 2 3]) ; => (2 3 4) (filter #(= 0 (rem % 2)) [1 2 3]) ; => (2) 1-2. 関数合成 / 関数適用 comp で関数合成するもいいけど as-> マクロで上から順に次々適用させていくので十分なことが多い。なお、引数位置がうまくそろうなら ->, ->> の方がよりコンサイス: (def comped (comp (partial reduce *) (partial map inc))) (comped (range 3)) ; => 6 (as-> (range 3) input (map

    Clojure 頑張る - Qiita
  • Clojureの長めのマクロを読む - Qiita

    動機 Lispといえばマクロというくらい、Lispとマクロは関連が深いです。 なのですが、自分は簡単なマクロなら自分で書けるものの、長いマクロや複雑なマクロをあまり書いたことがありません。 そろそろ次の1歩に進んでもいい頃合いかなと思うのですが、じゃぁどうするというところが思いつきません。 それなら公式の長めのマクロを読むことで色んなヒントを得ればいいじゃない、ということで読もうと思いました。 言語はClojureで、読むマクロはclojure.coreから長いものを適当に選ぶことにします。 長いマクロベスト4 case defmulti fn doseq(for) 定量的に図ったわけではないですが、ほぼ間違いないと思います。おそらく、Clojureに触ったことがある人であれば、大体わかるのではないでしょうか。 コードリーディング ソースコードはGit Hubより引用します。変更される可能

    Clojureの長めのマクロを読む - Qiita
  • LWJGL と OpenCV を Clojure で書いていく - Qiita

    動機 Lisp っぽいSyntaxで OpenGL とか使ってノベルゲームエンジンを作ってみたい JVM 言語で書けば、どこでも動くんじゃないかな? ゆくゆくは OpenCV + OpenAL も使って動画ファイルを再生したい JavaFX...知らない子ですねぇ 出来たこと (OpenCV を Clojure で使うことが出来た)<= まだクロスプラットホームに対応させられていない・・・ LWJGL を、 Java のチュートリアルを変換することで使うことが出来た レポジトリはこちらです 実装方法 注意:ここの実装方法は、OpenCV の項をクリアした上でなければ動きません・ Project.clj ここが一番重要な部分だと思います。僕ではうまく実装することが出来なかったので、[こちら] を参考にさせていただきました。 (おそらく上のページを踏襲してOpenCVも実装すればクロスプラット

    LWJGL と OpenCV を Clojure で書いていく - Qiita
  • Clojureのクォート - Qiita

    動機 先日、Clojureの長めのマクロを読むという記事を書いたのですが、自分でもびっくりするほど展開時のコードとコンパイル時のコードを区別できていませんでした。 次は何をしようかなーと考えてはいたものの、さすがにもう少しマクロについて理解せずに先に進むわけにもいかないので再度勉強し直すことにしました。 自分が理解していないのはマクロの中でもクォートだと思ったので、今回はクォートに絞って理解を勧めます。 何番煎じかわかりませんが、自分なりの表現でまとめてみます。 '(クォート)の特性 基的にクォートされた値は評価されません。例を見たほうが早いでしょうか。 '(シングルクォーテーション)はquoteと同じ意味で、実行時に展開されるリーダマクロと呼ばれるものです。 ※追記 コメントで指摘いただきましたが、リーダマクロが展開されるのは実行時ではなくリード時でした。 ;; 下記は(quote (

    Clojureのクォート - Qiita
  • メタ・テスト - Qiita

    前書き 以前に書いた記事の中でforとdoseqがまとめてテストされているということに触れました。 個人的にはそのテストの方法が驚きで、Clojureのテストについての考えは自分になじみのないものでした。 もう少し具体的に表現するのなら、「テストが柔らかい」と感じたのです。「テストライブラリは素材で自由にいじってもいい」といういい方もできるのでしょうか。 その命題が真であるならば、Clojureのテストの方法はきっと驚きに満ちているだろう、というのが今回の記事のモチベーションです。 具体的にはClojureのリポジトリの中から、テストに関するヘルパー関数、マクロを適当に拾い上げて、分類・解説を加えていきます。 clojure.testの主となる関数やマクロについては特に触れません。今回の興味は材料をどう調理するかであって、材料そのものではないからです。 といいながら、材料それ自体と関係ない

    メタ・テスト - Qiita
  • ClojureのWebアプリをAWS BeanstalkにDockerを使ってデプロイする - Qiita

    今までHerokuを使っていたのですが、機械学習モデルをデプロイする関係でメモリがきつくなってきたため、AWSに移行しようとしたというのが動機です。 AWSDocker,デプロイ周りに詳しいわけではないので、あくまで表題を達成するための方法が記述されている、くらいの認識でお願いします。 (他のイケてるやり方があれば是非、教えてください) なお記事を読むにあたって、AWSの登録やDockerの環境は構築済みであるとしています。 AWSに関してはIAMなどの認証周りの設定まで終わらせておくと面倒が少なくて良いかもしれません。 webアプリの作成 まず今回デプロイの対象であるアプリを作ります。 ブラウザでアクセスしたらHello Worldと表示されるやつですね。 lein new compojure hello-world cd hello-world lein ring uberjar

    ClojureのWebアプリをAWS BeanstalkにDockerを使ってデプロイする - Qiita
  • ClojureScript/re-frame開発における思考フロー - Qiita

    Clojurianのlagénorhynque (a.k.a. カマイルカ)です。 先日、Shibuya.lisp lispmeetup #62で「re-frame à la spec」と題してre-frameというClojureScriptフレームワークの概要とclojure.specとの統合方法の一例について発表しました。 記事では、その発表内容に関連してClojureScriptとre-frameでのSPA開発の流れについてご紹介します。 @ababup1192 さんのElmについての素晴らしい記事 Elm開発における思考フロー からサンプルコードと文の構成を参考にさせていただきました。 こちらの記事と比較してみると、両言語/アーキテクチャの共通点や差異が見られて面白いかもしれません。 ※ 記事はClojure/ClojureScript, Reagent, clojure.s

    ClojureScript/re-frame開発における思考フロー - Qiita
  • Clojure でブロックチェーンを実装してみる - Qiita

    Python でブロックチェーンを実装する記事を Qiita 上で発見しました。 ブロックチェーンを作ることで学ぶ 〜ブロックチェーンがどのように動いているのか学ぶ最速の方法は作ってみることだ〜 Swift で実装してみた記事 や Ruby で実装してみた記事があったので、右へ倣えということで Clojure で実装してみたいと思います。 基的には元記事の章立てに合わせて実装していきます。また、引用記法の箇所は、元記事より引用した文となります。 最終的なソースはこちら プロジェクト作成 後半に API としてブロックチェーンを利用するため、プロジェクトは compojure のテンプレートを使い作成しておきます。

    Clojure でブロックチェーンを実装してみる - Qiita
  • Clojureで進捗を表示しながら並列処理 - Qiita

    ... :dependencies [[org.clojure/clojure "1.9.0"] [org.clojure/core.async "0.4.474"] [clj-time "0.14.3"]] ... (ns word-count (:require [clojure.string :as str] [clojure.java.io :refer [reader]] [clojure.core.async :refer [go-loop]] [clj-time.local :as l])) (defn progress-format [done all interval-done interval-ms unit] (str "["(l/format-local-time (l/local-now) :basic-date-time-no-ms)"] " done "/"

    Clojureで進捗を表示しながら並列処理 - Qiita
  • Clojureで継承っぽいことをする - Qiita

    2018/5/23追記: 内容をかみ砕いてまとめました。 Clojureでオブジェクト指向を行うまとめ Clojureでクラスの継承っぽいことを探してようやく一つの物にたどり着いたので備忘録です。 若干何故動かなかったのか、何故動いたのか分かっていないところも有り。 (エラーメッセージの解読辛い…) (defprotocol IPerson (put[self I]) ) (def MPerson{ :put(fn[self I] (println (str I "は「" (:format-output self) "」です。")) ) }) (defrecord Person[name age high format-output]) (extend Person IPerson MPerson) (defrecord Person2[name age high format-outpu

    Clojureで継承っぽいことをする - Qiita
  • Clojureでオブジェクト指向を行うまとめ - Qiita

    インスタンス(オブジェクト)の生成 複数の方法が存在し、new、->(※)、.マクロを使用する方法があります。 恐らく違いはどれもありません。 ※2018/5/24 追記: コメントに頂きましたが内部で->名前な関数が生成されているらしいです。 (defrecord Person[name age]) (let [bob (new Person "bob" 25)] (println bob)) (let [bob (->Person "bob" 25)] (println bob)) (let [bob (Person. "bob" 25)] (println bob)) プロパティアクセス プロパティ名の頭に:(mapのアクセス方法)か.(インスタンスメンバーのアクセス方法)でアクセスすることができます。 通常と同様にClorureでは定数しか扱えないため、書き換えが必要ならatomと

    Clojureでオブジェクト指向を行うまとめ - Qiita
  • Re-Natalの始め方(for iOS) - Qiita

    Re-NatalとはClojureScriptでReact Nativeアプリを開発するためのユーティリティです。 Re-Natalをインストールして、アプリのスケルトンを生成し、それをXcodeのシミュレータで動かすところまでのメモです。 事前準備 まずは、React Nativeでアプリが開発できる環境を構築するのですが、Nodeをインストールするところから書くと、編に入る前に挫折しそうなので割愛します。 React NativeのQuick Startを参考にcreate-react-native-appパッケージをインストールして動作を確認しました。 その際、npm startを実行した時に「Unable to start server See https://git.io/v5vcn for more information, either install watchman o

    Re-Natalの始め方(for iOS) - Qiita
  • Bootstrap ver 4.1 3.0でのoffsetの扱い - Qiita

    あれ?offsetが効かないんだけど・・・? どうも、ClojureのLuminusフレームワークを使ってWeb開発をしている学生です。 いつものように hiccup で (defn home-page [] [:div.container ;; コンテナを作って [:div.row.justify-content-center ;; row を作って [:div.col-md-4.col-sm-offset-4 ;; 12等分して左4つを空けてそこから4つ分のところに [:button.btn-primary "Login"]] ;; button を置いてください ] ]) <div class="container"> <div class="row justify-content-center"> <div class="col-md-4 col-md-offset-4"> <bu

    Bootstrap ver 4.1 3.0でのoffsetの扱い - Qiita