Clojure is a robust, practical, and fast programming language with a set of useful features that together form a simple, coherent, and powerful tool. The Clojure Programming Language Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming.
30分プログラム、その56。リストの内包表記 for Scheme。 実際は、40分ちょっとかかってたりする。 内包表記(list comprehension)って? 内包表記がこれであっているのかちょっと自身がないので詳しめに、動作解説をしてみる。 Haskellのやつと動作が違うようならツッコミ希望。 まずは、単純にリストから要素をとってくる場合は次のように書ける。 (list-of x (<- x (iota 10))) ; => (0 1 2 3 4 5 6 7 8 9) またとってきたやつに対していろんな演算を行なうこともできる。 (list-of (* x 2) (<- x (iota 10))) ; => (0 2 4 6 8 10 12 14 16 18) (list-of (+ x 1) (<- x (iota 10))) ; => (1 2 3 4 5 6 7 8 9
defclass の slot には、:type オプションを指定することができる。 期待としては、:type オプションを指定した場合、指定した型を満たさない値を代入しようとすると、エラーとなって欲しい。ところが、SBCL ではそのようにならない。 (defclass foo () ((x :accessor foo-x :initarg :x :type integer))) (let ((x (make-instance 'foo :x 1))) (setf (foo-x x) :foo) (foo-x x)) ; => :foo defclass と slot へのアクセスを optimize safety で評価すると、期待する挙動となる。 (locally (declare (optimize safety)) (defclass foo () ((x :accessor fo
うん、何かちょうどこういうやっつけ仕事をしていたらセックスがピー (http://twitter.com/chunjp/statuses/6523318056) とかいうのが多方面から聞こえてきたんよ。それで。若い人はなかなかそういうの恥ずかしくて話せないでしょ、だからアラフォーのおっちゃんがちょっとしたるわ。 目的 何か XML で書かれたデータがあって、何となくどういうデータ構造になってるかは理解できる。あー、ここはリストだな、とか、ここは OCaml でいうレコードっぽいとか。そういうデータを読み込んで OCaml の型に落とし込むという作業、これをできるだけお手軽にしたい。スキーマとかガン無視。そういうのでやりたい人はがんばってください。できるだけお手軽にが基本。 材料 xml-light : XML をさくっと読み込んだりプリントしてくれるライブラリ。軽いのでそんだけ。 sexp
#数学の問題 #プログラミング ノイマンの方法で非負整数を作る。 0 = {} 1 = {{}} 2 = {{},{{}}} 3 = {{},{{}},{{},{{}}}} … あなたの好きなプログラミング言語で作ってみよう! — 結城浩 (@hyuki) May 17, 2016 これがなかなか手こずりました。 いや、アルゴリズムが、って意味じゃなくって計算速度がなかなか上がらんキッツい問題だな、と言う意味です。 さて、これは定義上は、見かけはビックリするんですが、実は実装的にはPythonのrange関数(あるいはSchemeのSRFI-1のiota)の再実装みたいなモンです。 つまり、入力nに対して何を返すのか、と言うと実は 1を入力 -> [0]を返す 2を入力 -> [0, 1]を返す 3を入力 -> [0, 1, 2]を返す ってのと全く同じ事をしてるんですね。ただ、最初に0を
Googleが作ったプログラミング言語「Go」。シンプル、速い、うまい。吉野家の牛丼のようですが(かつての)、吉野家のようにひとりで入るにはハードルが高そうです。今日は思い切って、ひとりで突入してみました。ちなみに、公式サイトのキャラクターの名前は、「Hiromi」だと信じています。「Hiromi Go」です。間違いありません。 The Go Programming Language 人気プログラミングランキング。Go langは13位にランクイン。 no title 最初は公式サイトのチュートリアルだけ見ていたのですが、サンプルコードが付属してくるようなので、処理系をインストールしてみました。Macなので、こちらの記事を参考に。 no title 私はLeopardなので、「export GOARCH=386」で動きました。それから、$GOROOT/binをmkdirしておく必要がありま
as詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック を読んでいて、経路探索のアルゴリズムで A* が取り上げられていました。A* については、いろいろ検索して調べたりもしたのですが、やっぱり本に書いてあると理解しやすいですね。せっかくなので自分流に実装してビジュアライズしてみました。ダイクストラ法まずは A* の特別なケースでもあるダイクストラ法から見ていきます。クリックすると探索のシミュレーションが開始します。スタート地点(S)からゴール(G)への探索が始まります。色がついたところが「最短経路が決定した場所」です。スタート地点から少しずつ探索が完了していきます。半分ぐらい完了しました。まだまだ進みます。最後まで終わりました。最短経路を黒色矢印で表示しています。ダイクストラ法は、スタート地点から近いノード(=マス
Swing は Java で GUI アプリケーションを開発するためのライブラリです。 Swing は Java の従来の GUI ライブラリである AWT を基に開発され、より柔軟で高機能な GUI を構築できるように設計されており、 GUI を必要とする業務アプリケーションやツール開発、デスクトップアプリケーションの構築に広く利用されています。 Swing を利用すると、ウィンドウ、ボタン、テキスト入力欄、リスト、テーブルなど、さまざまな GUI コンポーネントを簡単に作成できます。また、Swing のコンポーネントは OS のネイティブコードを使用せず、 Java だけで実装されているため、クロスプラットフォーム環境でも一貫した外観のアプリケーションを開発できます。 このカテゴリでは、 Java Swing を使ったプログラミングをこれから始められる方を対象として、 Java Swi
Android with Emacs on Ubuntu Prerequisites This tutorial assumes that the following tutorial has been successfully completed: Emacs on Ubuntu Install Java Install Java if not currently available. ~$ sudo apt-get install openjdk-6-jdk Install Ant Install Ant if not currently available. ~$ sudo apt-get install ant Install Android Download the Android linux release from http://developer.android.com/s
第二書庫 色々なメモとか備忘録とかの文書を置いています.第一書庫は消滅しました.気が向いたらこちらに移動します. 基本的に情報が古いです. 最近の記事は Qiita( http://qiita.com/binzume ) の方にも書いてます. ロボ研用に書いた電子工作やプログラミングの入門は,ロボ研用資料にまとめて置いてあります. アイ〇ンで遊ぶ 詳しくは,ななかInside PRESS vol.8に書きました ことはじめ 2010-09-14(日記) アイ〇ンのプロトコルの話 2015-12-25 (Qiita) GVSの実験 VR空間内で加速度を感じたくて,頭に電極つけて電流を流したりする話です.ななかInside PRESS vol.7に少し詳しく書いてます. ハードウェア編 2015-05-17(日記) 前庭電気刺激(GVS)で仮想空間の加速度を感じる 2015-08-16(Qii
ご無沙汰です。 いわいる、ダウンロード専用Winny(笑)のようなソースコードとアップロード専用Winny(ダミー)のようなソースコードです。 1つのホスト上でWinnyごっこができます>< P2PじゃなくてC/Sな感じになっちゃいました>< 実用性をたとえると、「立派な舗装がしてある幹線道路を車を使わずに歩いて移動する」くらい酷いものです。 とりあえず、以前の実験とかとかの副産物で。せっかくなので置いておきます。 使用方法を簡単に説明すると、こうなりました。 適当にテキストに落とす perl nyput_dmy.pl listen_port perl nyget.pl file_hash file_name file_size host por カレントディレクトリにfile_nameなファイルが出現 nyput_dmy.plのログ $ perl nyput_dmy.pl 6000 ke
Programming Clojureを読み終えた。 Common Lispとは微妙に違うので、コードを書く時にとまどう事も多いが、豊富なJavaライブラリを直接使用できるのは大きな利点である。 emacs + slimeを使えば、動作確認をしながらコードを書けるので、サクサク開発できて、なかなか便利である。 一通りの機能は理解できたので、いろいろ書いてみようと思う。 ネットワーク関係が面白いので、まずはecho serverを作ってみた。 sample/echo.clj (ns sample.echo (:use [clojure.contrib.server-socket :only (create-server close-server)])) (def port-no 3000) (defn echo [in out] (let [caption (str "*echo(" (.g
Google App EngineのWebアプリをClojureで簡単に作成できるか試してみた。 appengine-magic appengine-magicを使うと簡単そうだな。 https://github.com/gcv/appengine-magic/tree/ Getting Startedに従って、作ってみよう。 Google AppEngine SDKのインストール Python版とJava版があるが、Java版をダウンロードする。 ~/optにappengne-java-sdk-1.4.0を解凍する。 ~/opt/appengine-java-sdk-1.4.0/binにPATHを通す。 Hello,world!を作る まずはHello,world!を作ってみるよ。 プロジェクトの作成 helloプロジェクトを作成する。 $ lein new hello カレントディレク
久し振りの更新です。巷では先日リリースされたばかりのGPT-4oの話題でもちきりですが、私も当日深夜2時のライブストリーミングを見てその後すぐにGPT-4oを試しています。性能に関する雑感としては 全般的にはGPT-4-Turboより頭が良い Claude 3 Opusと比較すると、お堅い & 無難な回答を返す傾向あり ただし、Opusよりハルシネーションは起きにくい印象 画像認識の性能が凄い 辺りでしょうか。特に最後の点は特筆すべきことで、GPT-4-Turboの画像認識よりだいぶ性能が向上したおかげで今までだとやりにくかったことも簡単にできるようになっています。その際たるものが先日バズった GPT-4oの画像認識力と理解力をもってすればいけるやろと思ってやってみたら実際いけた。 ペーパープロトタイピングから最初のHTML書き起こすのにかなり使えるのでは。 つーか指示そのものを画像の中に
Java言語による暗号化をサンプルと共に説明しています。 JDK1.5以上には、JCE(Java 暗号化拡張機能)が含まれており、この機能を利用すると、共通鍵方式による暗号化や公開鍵方式による暗号化機能を実装できます。 このページでは、以下の手法を説明しています。 ・ 共通鍵を自動生成して暗号化する ・ 共通鍵を作成して暗号化する(その1)[htt://www.trustss.co.jp/Java/JEncrypt122.html] ・ 共通鍵を作成して暗号化する(その2)[htt://www.trustss.co.jp/Java/JEncrypt123.html] ・ パスワードベース暗号化[htt://www.trustss.co.jp/Java/JEncrypt124.html] また、Windowd APIとの連携として以下の説明もあります。 ・ Javaで暗号化したデータをWin
Javaで簡単にリトルエンディアンな出力ができないかを調べてみた。こんなかんじでいいのかな? import java.io.*; import java.nio.*; import java.nio.channels.*; public class NioTest { public static void main(String[] args) throws Throwable { long[] boe = {1L,2L,3L}; FileOutputStream out = new FileOutputStream("boe.txt"); FileChannel channel = out.getChannel(); ByteBuffer buf = ByteBuffer.allocate(boe.length * 8); buf.order(ByteOrder.LITTLE_ENDIA
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く