Common Lisp での文字列の扱いについて知らなければならない最も重要なことは、文字列は配列であり、したがって連続している順序でもあるということです。これは配列と順序に適用される全ての概念が文字列に利用することも出来る、ということを意味します。もし、特定の文字列操作関数が見つからなければ、必ずもっと一般的な配列か順序に関する関数を探した方がいいでしょう。ここでは文字列に対して出来ることをほんの少しだけ取り扱います。 部分文字列の取り出し[編集] 文字列は連続しているので、部分文字列を取り出すには SUBSEQ 関数を使用します。文字列の添え字(index)は常に 0 から始まります。三番目の引数は任意で、ここから部分文字列を構成しない最初の文字の添え字です。部分文字列の終端の1個後の添え字と憶えてもいいかもしれません。部分文字列の長さを指定するものではないので注意しましょう。 (de
If you are a novice Lisp programmer and you are confused about the difference between systems and packages, I recommend you to read the Packages, systems, modules, libraries - WTF? before you continue. Introduction The most common way that people use packages nowadays is by adding a packages.lisp or package.lisp file. This file is usually the first file to be loaded and define the packages that th
Lispでプログラミングをはじめるには何をすればいいのか、まさに直接的な チュートリアルをつくろうと思い立ち、この記事を書き始めました。 Common Lisp入門というともう今まで何度も何度も書かれてきたはずなので、今 更何を書くことがあるかと考えるのが当然なんですが、残念ながら、それらの 入門書が多数あるのにも関わらず使用者が少ない。 自分の実体験からしても、やはりLispには何らかの情報不足の壁があって、参 加者を拒んでいるような感じです。実際、自分がアクティブにCommon Lispの活 動をできるようになったのはつい最近です。CLについて勉強し始めたのは2年前 の夏でしたから、どうにもちょっと時間がかかりすぎている。 これはまったくまとまった記事ではありません。ただ、ダラダラと書くうちに、 やはり自分が詰まったところが思い出されました。これがcl初心者への道標 になればと思います
Common Lispのライブラリを利用するのに、以前はASDF-Installを使っていました。しかし、ASDF-Installは外部のシェルコマンドに依存するためWindowsでの利用が面倒だったり、接続先のサーバが落ちていてダウンロードできなかったり、ダウンロードできたとしてもビルドできないといったことが多くありました。 これを解決するためにZach Beaneが開発したのがQuicklispです。現在BETA公開中で、いくつか制限事項はありますが、誰でも利用できるようになっています。 Quicklisp BETA セットアップ まずはQuicklisp自身をインストールします。以下のリンクからQuicklispをダウンロードしてください。 Quicklispをダウンロードする あなたのLisp処理系 (きっとSBCL以外でしょうね) を起動し、以下のコードを実行してください。 (l
僕のブログで「Modern Common Lispはターゲットをどこに置いているのか」という質問をいただきました。最初は環境構築から始まっており、初心者向けに見えますが、次はHello, Worldもせずにライブラリの解説をしています。 Modern Common Lispのターゲットは、これからのCommon Lispを学びたい人です。当初はこの連載を読めばCommon Lispについてのすべてを学べるAll-In-One形式にしようと考えていたのですが、それでは時間がかかりすぎてしまうため、いくつかの過程を省いて進めます。たとえば、Lispでは必要なリスト処理などはここでは解説しません。理由は、それを学ぶための書籍が既に多く存在するからです。Common Lispの基本文法はそれらの書籍を参照してください。この連載は、Common Lispの入門書と並行、または読了後に読むことをおすす
2年前にLesqueという、Common Lisp向けにRubyのResqueクローンを作りました。 メッセージキューやジョブキューという種類のプロダクトで、非同期処理を別のプロセスに移譲してバックグラウンドで行うものです。Redisをバックエンドとしています。 ある程度の規模のWebアプリケーションなんかを運用しているところなら必要になってくるだろうものですが、Common Lispでそういうプロダクトを作っているところがあるのかどうかも怪しいです。弊社サムライトはどうなんだと言われると苦しい。 ブログでLesqueの紹介記事は書いたんですが、その後使うことも無いしQuicklispにも申請せずメンテナンスもしていませんでした。特にせっつくようなコメントももらってないので需要もないのかもしれません。 blog.8arrow.org 物好きな僕のフォロワーがRedditにも投稿しています。
High-level, user friendly interface that hides the details. (solve a b) should return $X$, from $AX=B$, regardless of whether $A$ is a dense matrix, an $LU$ decomposition, or something else; similarly, $X$ should be a vector/matrix when $B$ is. Users should not need to memorize names like DGESV, especially when CLOS makes it so easy to deal with these things. Also, you don't need to make sure that
僕のブログで「Modern Common Lispはターゲットをどこに置いているのか」という質問をいただきました。最初は環境構築から始まっており、初心者向けに見えますが、次はHello, Worldもせずにライブラリの解説をしています。 Modern Common Lispのターゲットは、これからのCommon Lispを学びたい人です。当初はこの連載を読めばCommon Lispについてのすべてを学べるAll-In-One形式にしようと考えていたのですが、それでは時間がかかりすぎてしまうため、いくつかの過程を省いて進めます。たとえば、Lispでは必要なリスト処理などはここでは解説しません。理由は、それを学ぶための書籍が既に多く存在するからです。Common Lispの基本文法はそれらの書籍を参照してください。この連載は、Common Lispの入門書と並行、または読了後に読むことをおすす
SBCLは, Common Lisp処理系の中では早いらしい でも, 公式に配布されているWindows用バイナリは This is experimental prerelease support for the Windows platform: use at your own risk. "Your Kitten of Death awaits!"というメッセージが(--noinformしても)必ず表示されてうっとうしい それにせっかくだから新しいものを使いたいので, 以下のサイトを参考にcygwinでビルドしてみた http://sbcl-internals.cliki.net/Build%20on%20Windows http://www.sbcl.org/getting.html http://www.rhinocerus.net/forum/lang-lisp/436971-s
深町さんのブログで日本語でCommon Lispの質問をする方法が載ってましたが質問じゃなくて単に情報を得たい、勉強をしたいという場合が書かれてなかったので勝手に補遺。 処理系選び 処理系:選び方の目安 - Common LISP users jpや Common Lisp 処理系 - 紫藤のWikiが参考になるかと思います。 開発環境構築 Modern Common Lispあたりですかね。著者がちょっと古くなってきたので更新するって言ってました。 処理系のインストールなら*nix環境で使える拙作のCIMもあります。解説はこちら。 入門 Web 私の一番のおすすめはM.HiroiさんのWebページです。一応Common Lispではなくxyzzyですがここで紹介されている内容であればCommon Lispにも共通します。 M.Hiroi’s Home Page / xyzzy Lisp
いい加減ChatOpsにも手を付けたいなぁ、と思って、試しに家庭内SlackにHubotを導入してみました。 HubotはGitHub社製のチャットボットフレームワークです。CoffeeScriptで書かれていてNode.jsで動きます。挙動を追加するにはCoffeeScriptでスクリプトを書きます。 これを利用して、チャットというインターフェイスを使って様々な日常タスクを処理させることができます。最近の流行りでは、hubot deployなどと唱えるとチャットからサーバのデプロイをしたりできるようです。 今年もChatOps Advent Calendarでチャットボットを使ったテクニックが投稿されているようです。 ChatOps Advent Calendar 2015 - Qiita さて、導入したのはいいのですが、CoffeeScriptを書くのがどうにもダルい。JavaScri
Tags: 処理系, CCL, CLISP, SBCL 実行ファイルの作り方の、仕組みと処理系ごとの詳しい方法について説明します。 実行ファイルの作り方の仕組みランタイムイメージランタイムとイメージの組み合わせトップレベルの処理Tree-shakingPurifying処理系ごとの詳細Steel Bank Common LispCLISPClozure CL参考文献 実行ファイルの作り方の仕組み ランタイム ランタイムとは、Lispのプログラムを動かすために必要なもののことです。S式を読んだり、評価したり、といった中核の部分(カーネルと呼ばれたりします)と、その中核の部分を利用して動かす、基本的なライブラリなどが含まれる部分を合わせて、ランタイムと呼びます。 ANSI Common Lispで決められている、処理に必要な振る舞いのうち、どこまでを中核の部分に含めるか、どこまでをどの言語で書
やっとまともに動かせるCLのバイナリが作れたので、 UNIXのlsコマンド風なものをCommon Lispで実装する手順を例にメモっておく。 環境は、Windows7+SBCL 1. とりあえず、REPLでも何でもよいので実行する処理を記述する。 ls.lisp (defun ls-current () (loop for i in (directory (make-pathname :type :wild :name :wild :defaults (truename "./"))) do (format t "~a~%" i))) 2. SBCLを単体で起動する。 c:\> set HOME=c:\emacs\home c:\> set SBCL_HOME=C:\Program Files (x86)\Steel Bank Common Lisp\1.0.37\ c:\> sbcl s
一年たってもCommon Lisp管理のソフトを書いている。 昨年のadvent calendar から1年たったのでこの一年でのアップデートを書く。 スクリプティングができるようになった。 昨年はただコマンドラインオプションの処理系毎の違いを吸収するツールでファイルを実行させる機能を持たなかった。 common lispのアプリケーションやツールはcommon lispの関数として、提供される事が多く、実際にツールを使う際にはreplから叩く必要があった。慣れた人には良いが、例え慣れていたとしても操作手順書を書いたり読んだりする際にはreplから叩くのかコマンドラインから叩くのかをかきわけたり判断してなくてはいけないのは面倒だった。これにより面倒な操作をラップしやすくなった。(参考:深町さんの記事 と wiki)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く