タグ

lisp*に関するsh19910711のブックマーク (169)

  • Clojureに入門したら知っておきたいN個のこと - lagénorhynque

    Clojureのデータ構造は抽象をもとに設計されているため、どのような抽象があるのか把握しておくことは重要です。

    Clojureに入門したら知っておきたいN個のこと - lagénorhynque
    sh19910711
    sh19910711 2024/06/19
    "Clojureのデータ構造は抽象をもとに設計されているため、どのような抽象があるのか把握しておく / 多機能のライブラリや「フレームワーク」よりも単機能に特化した小さなライブラリの組み合わせが好まれる傾向" 2019
  • Common LispにThreaded Macroを実装する - Doge log


    PythonClojure ClojureThreaded Macro使 Common Lisp (defmacro -> (x &optional form &rest more) (cond ((not (null more)) `(-> (-> ,x ,form) ,@more)) ((not (null form)) (if (listp form) `(,(first form) ,x ,@(rest form)) (list formx))) (t x))) (defmacro ->> (x form &rest more) (cond ((not (null more)) `(->> (->> ,x ,form) ,
    Common LispにThreaded Macroを実装する - Doge log
    sh19910711
    sh19910711 2024/06/19
    "Clojureでは数珠つなぎで処理する場所はわかりやすくThreaded Macroを使って書くことが多い / Clackなどのmiddlewareを書く際にもThreaded Macroの方がわかりやすいんじゃないか" 2013
  • 「コンパイラ: 原理と構造」の型推論をClojureで書いた


    : Clojure :  3   LALRCommon Lisp   SML#使Clojure ClojureClojure  user> (type-inf-defs '((def fdec (fn p (tuple (- (get p 0) 1) (get p 1)))) (def
    sh19910711
    sh19910711 2024/06/19
    "括弧の数が少なかったりassocが探索ではなく追加をする関数だったりするのは、 人のソースコードを読むときは気持ち悪く感じたが、 自分で書くときは案外違和感なく書けた" 2021
  • 最近Clojureでテストを書くときに使っているライブラリをふたつ紹介します - Uzabase for Engineers

    こんにちはこんにちは!!あやぴーです。 最近の仕事ではF#を使ったり、Clojureを使ったりすることが多いのですが、今日は久しぶりにClojureの話を書きます。 Clojureでテスト書くときに一緒に使うライブラリ何使ってますか? テスト対象が依存する関数をモックしたい - mockfn 複雑なデータ構造のdiffを簡単に知りたい(あるいはデータ構造の比較を簡単にやりたい) - matcher-combinators モックした関数が取る引数をスマートに制限したい - mockfn & matcher-combinators まとめ Clojureでテスト書くときに一緒に使うライブラリ何使ってますか? アプリケーションでユニットテストレベルのテストを書くとき、どういうライブラリを一緒に使っていますか?Kaocha?Midje?test.check?shrubbery?Flare? 今回

    最近Clojureでテストを書くときに使っているライブラリをふたつ紹介します - Uzabase for Engineers
    sh19910711
    sh19910711 2024/06/19
    "関数の中で関数を呼び出すというような単純な実装 / オブジェクト生成時に外部から依存するオブジェクトをインジェクションして、テストをしやすいようにするというような実装を行うことはあまり多くありません" 2022
  • Loomを用いたグラフ・ネットワーク分析 - Qiita

    はじめに LoomはClojureのグラフ・ネットワークライブラリです。Loomは純Clojureで実装されており、基的なネットワーク分析に必要な機能がそろっています。Clojureには統計解析等に関する優秀なツールがあり、データ分析には事欠きませんが、これでネットワーク分析も行うことができるようになります。 稿では、Loomの基的な使い方の説明と、実世界のネットワークを対象とした簡単な分析を行っていきます。 基的な使い方 インストール 以下をLeiningenやBootの依存設定に追加します。

    Loomを用いたグラフ・ネットワーク分析 - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Loomは純Clojureで実装されており、基本的なネットワーク分析に必要な機能がそろっています / 一方で、Loomにはページランクなどの中心性の計算のような高度なアルゴリズムが実装されていません" 2016
  • Clojureとヤマハルーター - Qiita


     Clojure Advent Calendar 2018 6  @notake  RTX1210DHCPClojure   $: LinuxmacOS >:  #:  user=>: ClojureREPL SSH  
    Clojureとヤマハルーター - Qiita
    sh19910711
    sh19910711 2024/06/19
    "ルーターから情報を吸い出すには、当然ながら何かしらの手段でルーターに接続する必要 / ヤマハルーターの構成管理をClojureから行ったり、ルーターのファイアウォールをednで定義できるかも" 2018
  • キメる Clojure チーム開発 - Qiita

    この記事は Clojure Advent Calendar 2019 18 日目の記事です。二年前に書いたキメるClojure高速開発が未だに読まれている気配があるので、情報を最新化し、現時点での意見をまとめようと思います。 当時の意見は特に Clojure 開発の高速性に注目し、短いスパンで進める個人開発に特に向いているというものでした。一方で経験にないため憶測でしたが、チームで進める中規模以上の開発にはあまり向かないのではないかと考えていました。しかし現在はチームとして Clojure を使って開発を行っているため今回はその観点から「Clojure を使ったチーム開発ってどうなの?」に対する意見を書きます。 私と Clojure のそれから 2014 年に上司の指導で Clojure に入門してから五年が経ちました。 2018 引き続きシリコンバレー駐在。 プロトタイプ開発などで許され

    キメる Clojure チーム開発 - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Clojure には型を捨てて余りあるチーム開発を支える言語特性がある / 人の書いたコードを理解するオーバーヘッドが比較的少ない / Clojure の「全てがデータ」という特性はチーム開発と相性がいい" 2019
  • ClojureのDuctとClojureScriptのre-frameによるREST API + SPA開発入門 - Qiita


    Java (JVM)ClojureJavaScriptClojureScriptWebClojureClojure ClojurianDuctClojureScriptReactReagentre-frameREST API + SPATODO Leiningenshadow-cljs使(/Ja
    ClojureのDuctとClojureScriptのre-frameによるREST API + SPA開発入門 - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Java (JVM)環境でのClojureとJavaScript環境でのClojureScriptを組み合わせると、典型的なWebアプリケーションのサーバサイドもフロントエンドもほぼ同等の言語で開発できるというのはClojureの魅力のひとつ" 2020
  • 簡易LISP処理系の実装例(Clojure版) - Qiita

    【他言語版へのリンク記事】簡易LISP処理系の実装例【各言語版まとめ】 この記事は,Clojureによる二種類の原初LISP評価器("McCarthy's Original Lisp")の実装をまとめたものです. コンスセル未対応版 ClojureはS式入出力を扱うプログラミング言語のため,LISP評価器の実装自体は容易ですが,他のLISP系言語と異なりリスト構造はコンスセルに基づくものではなく,ドット対表現も利用できません.この版では,リスト構造を基データ構造としつつ,『原初LISP評価器の機能に相当するClojureの機能のみで原初LISP評価器を定義』しています.具体的には次の通りです. 実装は' seq? = cons first rest cond defnを使用 機能はquote atom eq cons car cdr cond lambdaを提供 S式入力はClojure

    簡易LISP処理系の実装例(Clojure版) - Qiita
    sh19910711
    sh19910711 2024/06/19
    "ClojureはS式入出力を扱うプログラミング言語のため,LISP評価器の実装自体は容易ですが,他のLISP系言語と異なりリスト構造はコンスセルに基づくものではなく,ドット対表現も利用できません" 2020
  • Clojureの剰余を求める関数、remとmodの違い - Qiita


     FizzBuzz調 remmod 2調remmod remmodremmod  ""   FizzBuzz  remmod
    Clojureの剰余を求める関数、remとmodの違い - Qiita
    sh19910711
    sh19910711 2024/06/19
    "剰余を求める関数が『rem』『mod』と複数存在していることを知り、その違いについて戸惑ってしまい / remとmodでは、剰余の正負の符号決定のされ方が異なっており、remでは被除数、modでは除数と同じ符号となる" 2020
  • Clojureマクロの書き方 - Qiita


     ClojureJavaClojureClojure    defmacro使 (defmacro with-log [form] (list 'do (list 'println "Start") form (list 'println "End")))
    Clojureマクロの書き方 - Qiita
    sh19910711
    sh19910711 2024/06/19
    "ClojureはJavaなど他の言語にはないユニークな機能が色々と備わっています。そのなかでも一際特徴的に思えるのがマクロ / マクロを使うことでClojure自身をカスタマイズできる" 2021
  • Clojureで快適なREPL駆動開発のために"reloaded workflow"を実践しよう - Qiita


    ClojureREPL(REPL-driven development)(DX; developer experience)Clojure"reloaded workflow" tools.namespace + Integrant/Component/mount lagenorhynque/reloaded-workflow-examples(
    Clojureで快適なREPL駆動開発のために"reloaded workflow"を実践しよう - Qiita
    sh19910711
    sh19910711 2024/06/19
    "ClojureといえばREPL駆動開発によるインタラクティブで高速な開発スタイルが大きな強み / REPLを再起動することなくソースコードの変更をリロードしアプリケーションを安全に再起動できる仕組みを整える" 2021
  • Clojure で Kafka Streams アプリケーションを書く - Qiita


     Kafka Advent Calendar 2021 11  Kafka Streams Clojure Jackdaw Kafka Streams  Clojure 使  Kafka Quick start 
    Clojure で Kafka Streams アプリケーションを書く - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Jackdaw: Kafka Streams の Clojure ラッパーライブラリ / Streams DSL が clojure 関数にラップされており、それらは builder か kstreams を第一引数に取るため、スレッディングマクロで簡潔ににトポロジーを書き下せます" 2021
  • アルゴリズム設計に欠かせない問題解決のための「還元」 with Clojure - Qiita


       使使Clojure(Clojure)  1. (reduce) (reduce)AB  (A)(B) (
    アルゴリズム設計に欠かせない問題解決のための「還元」 with Clojure - Qiita
    sh19910711
    sh19910711 2024/06/19
    "問題を別の問題に置き換えて考えることを言語化した、計算理論の世界の「還元」という概念 / 「この問題(A)って要はあの問題(B)なのでは?」「あの問題(B)さえ解ければ、この問題(A)が解ける」みたいな" 2021
  • ClojureのerlangバインディングであるClojerlを動かす - Qiita

    Clojerlとは ClojerlはClojureのerlangのバインディングです。 https://www.clojerl.org/ Erlangは安全で信頼性の高い、スケーラブルなシステムを構築するの言に適している言語です。そしてClojureと同様にイミュータブルで永続的なデータ構造を提供し、並行処理の機能を持ちます。 一方、Clojureが提供するものはLispそのものです。repl、これはプログラマーに対して魅力的な世界を提供します。そしてErlangと同様にイミュータブルで並行処理の機能を提供します。 インストール 私の環境はM1 Macですので、brewでerlangを含むelixirをインストールします。

    ClojureのerlangバインディングであるClojerlを動かす - Qiita
    sh19910711
    sh19910711 2024/06/19
    "Clojerl: Clojureのerlangのバインディング / Erlangは安全で信頼性の高い、スケーラブルなシステムを構築 + イミュータブルで永続的なデータ構造を提供し、並行処理の機能 / 一方、Clojureが提供するものはLispそのもの" 2022
  • Clojure の mean を高速化できなかった - Qiita


     ClojureJulia使ClojurepartitionreductionsJuliaClojure ClojureJulia使 5000Clojure4.7Julia0.37Python26Numpy0.39Common Lisp1.75 ;; Clojure user=> (time (mean (f
    Clojure の mean を高速化できなかった - Qiita
    sh19910711
    sh19910711 2024/06/19
    "速度が気になったのでJuliaを使ってみたが、Clojureが忘れられず、partitionやreductionsをJuliaで書いていた。そこに手間をかけるのであれば、Clojureの高速化にひと手間かけても良いのでは" 2023
  • Clojure の Transducer を勉強する - Qiita


     Clojure   Clojure 使 Clojure 使 Clojure   Clojure  Clojure  Transducer   Transducer 調 Tra
    Clojure の Transducer を勉強する - Qiita
    sh19910711
    sh19910711 2024/06/19
    "map や filter といったシーケンス関数を、シーケンスを渡さずに引数1つだけで呼び出すと Transducer が返ってきます / 「こんな変換をしてね」という命令だけを取り出した、というイメージ" 2023
  • より自由なFreerモナドをSchemeに - Qiita


    data Freer f a where Pure :: a -> Freer f a Impure :: f x -> (x -> Freer f a) -> Freer f a instance Monad (Freer f a) where return = Pure Pure x >>= k = k x Impure fxk' >>= k = Impure fx(k' >>>k) Pure  Free  Impure  f x 使 >>=  >>>  Category Kleisli  k' k  Operational 
    より自由なFreerモナドをSchemeに - Qiita
    sh19910711
    sh19910711 2024/06/18
    "Free モナドを使うと Functor f からモナド則を満たす Free f が得られる / Scheme でモナドを書こうとするとメタ情報が足りないために、文脈に応じて return の実体を決めるという Haskell 的なやり方が使えない" 2015
  • Goで小さなScheme、Gigueを実装しました - Qiita

    $ gigue > (+ 1 2) 3 > (define (mul x y) (* x y)) > (mul 2 3) 6 > (define a (mul 1 2)) > (- 10 a) 8 > (define (square x) (* x x)) > (print (square 3)) 9 > (define x 'kuke) > (print x) kuke > (load "./examples/sum.scm") > (print (sum 1 2)) 3 > (define x (lambda () (print 'hoge))) > x {[] [print hoge] 0xc820014300} > (x) hoge > (define p (list 1 2 3)) > (car p) 1 > (cadr p) 2 > (caddr p) 3 機能 +, -, *

    Goで小さなScheme、Gigueを実装しました - Qiita
    sh19910711
    sh19910711 2024/06/18
    "GoでSchemeインタプリタを実装してみる / Lexerは text/scanner でやるとして、Parserは渡された文字列を扱えば良い / どこまでがLexerの仕事で、どこからがParserの仕事なのかわからなくなってしまい" 2015
  • LISP(Scheme)でProject Eulerを解いてみる - Qiita


    Lisp Advent Calendar 201632R7RS-large Project EulerProblem15  LISPScheme使LoL😉 Scheme1Project EulerGitHub(commit) kagemiku/project-euler (
    LISP(Scheme)でProject Eulerを解いてみる - Qiita
    sh19910711
    sh19910711 2024/06/18
    "今までLISPは食わず嫌い的に敬遠していたのですが,最近大学の授業でSchemeを使う機会があり,いざちゃんと勉強してみると結構面白くて,ずぶずぶと沼にハマっていく音が聞こえてきました" 2016