タグ

Lispに関するs_ryuukiのブックマーク (14)

  • macOSとVSCodeでLispするための備忘録|shi3z

    Lispって凄いなと思うわけだが、昔からLispを使ってみようにも実用的な使い方に辿り着かなかった。Lispも使えないくせにハッカーとは何事だと怒られそうでビクビクする今日この頃。 いろんな人にプログラミングを説明するときに、実はLispが一番いいんじゃないかと思った。だって(+ 1 2)で1+2になるっていう法則さえわかれば、Lispってなんでもできるんだぜ。for文とかwhile文とか面倒な制御構造がないので説明しやすいのではないかと思った。そもそも、a=a+1が理解できないというプログラミングの初心者つまづきポイントあるあるが回避できるし。 ところがLispは世界で二番目に古いプログラミング言語なので、命令がC++JavaScriptに慣れた人だと難しい。 やはりちょっと自分でも触ってみるかと人生で10回目くらいに思い立ったので、VisualStudio CodeでLispしてみる

    macOSとVSCodeでLispするための備忘録|shi3z
  • 関数型プログラミングと型システムのメンタルモデル

    Qiita Conference 2023 Autumun での発表資料です 発表時間の見積もりが下手で後半全然説明できませんでした、すみません! 実際のプロダクト開発ではどうすればいいのか? というケースは以下のスライドを参照してください。 (スライドは、こちらのプロダクト開発の経験をベースに基礎を再整理したものになります) https://speakerdeck.com/naoya/typescript-niyoru-graphql-batukuendokai-fa-75b3dab7-90a8-4169-a4dc-d1e7410b9dbd

    関数型プログラミングと型システムのメンタルモデル
  • 【第5回】「型」はウェブシステム開発に「エンドゲーム」をもたらすか | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

    伊藤直也さんが「今逢いたい」ソフトウェアエンジニアに声をかけて対談を重ねてきたシリーズの最終回は、これまでの対談の文章化を手がけたラムダノート株式会社の鹿野桂一郎さんとの異色対談です。コンピュータ技術書や記事の編集者であると同時に仕事趣味でHaskellのプログラムも書く鹿野さんの視点を通し、現代のウェブシステム開発に伊藤さんが何を見ているのか、特に「型」と「エンジニアの学び」というこれまでの対談に通底するテーマについて掘り下げます。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・鹿野 桂一郎さん / ラムダノート株式会社 代表取締役社長

  • こわくない関数型プログラミング

    関数型プログラミングは全部理解しようとすると難しいですが、簡単な部分の中にも有用な知見がたくさんあります。 関数型プログラミングにまだ親しんでいない人向けに、明日からのプログラミングにすぐ役に立つ考え方をできるだけわかりやすく伝えます。

    こわくない関数型プログラミング
  • いまから始めるCommon Lisp - Qiita

    この記事はLisp Advent Calendar 2017の二日目の記事です。 はじめに この記事は、Common Lispという初めての人には初めましてな言語の入門記事です。 この世には、Common Lispというとってもカッコいい言語が存在します。その言語はANSIで規格が定められており、宇宙空間で動いたり深海で動いたりし、メタプログラミングが可能で、しかもC言語並に速いという、超クールな言語なのです。 歴史あり、逸話ありのLispであって、実用的と言われるLispです。そんな言語、いますぐに始めてみたいと思いますよね? しかしググってみると、なんだか処理系っていうの (?) がたくさんあったりしてどれを選んでいいのかわからない。rbenv的なものはないの? パッケージマネージャは? アプリケーションのビルドとかどうしたらいいの? ぱっと実用的なプログラムをどう書いたらいいかわから

    いまから始めるCommon Lisp - Qiita
  • Easy-ISLisp

    ISLisp規格準拠の処理系です。OSSです。全ソースはGithubにて公開しています。 Easy-ISLisp(Windows) Easy-ISLisp(Linux Ubuntu) Easy-ISLisp(for raspberry3 Linux Raspbian) 説明 Qiitaに使用方法などを投稿してあります。下記を参照してください。 Easy-ISLispのコンパイラ Easy-ISLispの組込みエディタ Easy-ISLispでLチカタ ISLispによるLISP99 ISLispの関数などの説明

    Easy-ISLisp
  • 極小Lispインタプリタ作成で学ぶパーサーコンビネータ with Swift - Qiita

    極小Lispインタプリタを作ろう! この記事では、非常に機能を絞ったLispインタプリタの作成を通じて、パーサーコンビネータや、それにまつわるテクニック、考え方などを紹介していきます。 今回作成するLispに登場するのは、四則演算関数と、数値型だけの非常にミニマムなものです。 例えば以下のようなソースになります。 これをインタプリタなどにわせると、(3 + 18) * 2 という計算を行い、42が返ってきます。 四則演算しかできないとても極小のものですが、作成の過程では様々なテクニックを交えつつ紹介してみたいと思います。 また、この記事では、"無限リストの作り方"で作成したListを多用しますので、随時参照して頂けると読みやすいかと思います。 そもそもLispってなんだよ? LispはList Processingに由来するプログラミング言語です。とても古い言語ですが、コンピュータの歴史

    極小Lispインタプリタ作成で学ぶパーサーコンビネータ with Swift - Qiita
  • やさしいLispの作り方: C言語で作るミニミニLisp処理系、竹内郁雄さんのこと、GC(ガベージコレクション、ゴミ集め)本で新刊が出る!: ホットコーナー

    ブログ(iiyu.asablo.jpの検索) ホットコーナー内の検索 でもASAHIネット(asahi-net.or.jp)全体の検索です。 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。 例 中村(show) ki4s-nkmr ウェブ全体の検索 ASAHIネット(http://asahi-net.jp )のjouwa/salonから。 --- 著者の笹川さんから、献していただきました。 ありがとうございます。 笹川さんの処女作とのことですが、なんと、Lisp処理系を作りながら、Lispを解説するです。\(^O^)/ こういうLisper, Lispファンがいるのは、心強いし、うれしい限り。 処女作、おめでとうごいます。\(^O^)/ http://www.amazon.co.jp/exec/obidos/ASIN/B01B1FYQVQ/showshot

  • Cより高速なCommon Lispコードを書く - 八発白中

    Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。 “If you can't outperform C in CL, you're too good at C.” — Eric Naggum 最近、Common Lispの非同期Webサーバ「Wookie」を高速化する過程で、ボトルネックになっていたHTTPリクエストのパース部分を高速に処理するライブラリを書きました。 fast-http - A fast HTTP request/response parser for Common Lisp 既存のライブラリ「http-parse」よりも約10倍速く、Cのライブラリ「http-parser」より5%ほど高速です。 追記 (2014/10/26): 最適化をやり直し、現在は「http-parse」よりも約27倍速く、Cの「h

    Cより高速なCommon Lispコードを書く - 八発白中
  • Lisp処理系を実装するC言語チュートリアル「Build Your Own Lisp」 - 旧gaaamiiのブログ

    すばらしいですね。「C言語で何が作れるの?」っていう疑問、そしてそれを盾にCの理解を避けてきた人は割といるんじゃないかと思います(僕です)。このチュートリアルでは最初から何を作るかがわかっているのでモチベも続きそうだし、なにより楽しそう。 「軽量言語(たとえばRuby)を使っているけどもうちょっと深く掘り下げたいという人にはよさそう(僕です)。 Learn C • Build Your Own Lisp

    Lisp処理系を実装するC言語チュートリアル「Build Your Own Lisp」 - 旧gaaamiiのブログ
  • ソフトウェア特論 講義資料 C言語によるLisp処理系

    Next: 1 Lisp処理系: Xlisp Up: Software IV Top ソフトウェア特論 講義資料 C言語によるLisp処理系 稲葉 雅幸 ここでは,LispのインタプリタをC言語で記述すること を紹介します.Lispの処理系は,read-eval-printを 繰り返すものですが,C言語でread, eval, print のそれぞれがどのようになるかを見ます. そして,Lispの処理系においては,データをreadした時, データを評価して計算中に新たにデータを生成したり, 新しいデータを結果として返したりします. 通常の計算機内で直線状に並んだメモリデータで, データの配列や長さが自由になるリストデータをどのように 表現するかが重要になります.そして,いらなくなった データがあった場合に,どのようにそのメモリデータを 再利用するのかについての仕組みを決める必要があります.

  • Lisp講義1

    PFI社内セミナーで強力な型システムがもたらす様々な恩恵について発表した際の資料です。 補足的な記事はこちらをどうぞ: http://blog.konn-san.com/article/20120412/how-wonderful-to-be-typed また、発表の模様は以下の ustream からご覧になれます。 http://www.ustream.tv/recorded/21781769

    Lisp講義1
  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
  • 竹内関数 - Wikipedia

    竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 概要[編集] 再帰的に定義される、3個の引数 x, y, z をとる次のような関数である。 特に変わる所は無いがLisp版[1]も参照のこと。定義からわかるように処理を次々にたらい回しにしていくことから、たらいまわし関数[2]、たらい関数 (Tarai function) とも呼ばれる(後述のマッカーシー版との混同を避けるためこの名で呼ばれることのほうが多いが、こちらの定義のほうがオリジナルである。マッカーシー版を特にTak関数として区別する場合もある)。電電公社研究員(当時)の竹内郁雄が、1974年の夏前の頃、後述するような特性のある関数をあれこれ考えていた、ある日の午前に思いついたものである[3]。竹内関数と命名したのは野崎昭弘である[4]。 特性として、他のよくベンチ

  • 1