• 締切済み

LISPの間違いを指摘して欲しいのですが・・・

(setq a 1) (setq b 2) (setq c 3) (setq d 4) (setq e 5) (setq f 6) (setq g 7) (setq h 8) (setq i 9) (setq j 10) (defun wa(q r s t u v w x y z) (+ q r s t u v w x y z)) (wa a b c d e f g h i j ) 55 1から10までの合計値を求める”LISP”のプログラムを作りたいのですが上記を作ってみましたがうまくいきません。 どこが悪いのでしょうか?

みんなの回答

  • hpsk
  • ベストアンサー率40% (48/119)
回答No.3

原因は変数名に't'を使ってしまっていることですね。 't'はCommon Lispでは真偽値の「真」を表す記号に使われているので、変数名に使ってはいけないのです。 変数名を変えるのが無難ですが、 意地でもtを変数名として使いたければ (shadow t) としてから、質問文のコードを実行しましょう。 shadowを実行した後、真偽値としてtを使いたいときは lisp:t(処理系によってはcommon-lisp:t) と明示的にパッケージを指定しなければいけません。

Sleeping-lion
質問者

お礼

返事が遅れてしまい申し訳ありませんでした。 ご指摘の通りにやってみたところうまく実行できました。 ありがとうございました。 (真偽値の事を忘れていました・・・)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

おかしくないような感じですが、 どういう風にうまくいかないのでしょう? また、処理系はなんですか?

Sleeping-lion
質問者

お礼

変数名を直すことで解決できました。 ありがとうございました。

  • ganzou
  • ベストアンサー率29% (25/85)
回答No.1

"+"って2項演算子じゃないですか?

関連するQ&A

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • JavaScriptの配列について

    var old_array = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array = Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); のような配列があり、 abcと入力するとbcd DEFと入力するとEFG 012と入力すると!23 というようなものを作りたいのですがどうすればいいでしょうか。

  • 3重積分に関する問題

     R^3上の広義積分   (1)∫∫∫[R^3] e^(-Q(x,y,z)) dxdydz   (2)∫∫∫[R^3] (x^2 + y^2 +z^2)e^(-Q(x,y,z)) dxdydz ただし、Q(x,y,z)=(x y z) A t(x y z)、Aは、上から、    A=(2 -1 1)(|-1 2 -1)(|1 -1 2) で与えられているとします。上記の二つの積分を求めたいのですが、(1)に関しては次のように考えました。 (1)まず、Q(x,y,z)の標準化を考え、直行行列Pを用いてAを対角化します。そうすると、Pは(ただし、Aの固有値は4、1)、上から(最初の(1/√6)は係数)、  P= (1/√6)(√2 -√3  1)(-√2   0 2)(√2 √3 1) となり、U=tPAPと置くと、A=PUtPとなるので、   Q(x,y,z)=t(tP t(x y z)) U tPt(x y z)。 ここで、(x' y' z')=tPt(x y z)と置くと、  Q(x,y,z)=t(tP t(x y z)) U tPt(x y z)=(x' y' z')Ut(x' y' z')=F(x',y',z') と変換でき、またヤコビアンJ(x',y',z')=-2/3より、  ∫∫∫[R^3] e^(-Q(x,y,z)) dxdydz =(2/3))∫∫∫[R^3] e^(-F(x',y',z')) dx'dy'dz' となります。よって、  (2/3))∫∫∫[R^3] e^(-F(x',y',z')) dx'dy'dz' =(2/3)∫[-∞,∞] e^(-4x'^2)dx'∫[-∞,∞] e^(-y'^2)dy'∫[-∞,∞] e^(-z'^2)dz' ここで、x'=(1/2)sと置くと、上式は、 =(1/3)∫[-∞,∞] e^(-s^2)ds∫[-∞,∞] e^(-y'^2)dy'∫[-∞,∞] e^(-z'^2)dz' =(1/3)(∫[-∞,∞] e^(-s^2)ds)^3 ここで、∫[-∞,∞] e^(-x^2)dx=√π より、 =(1/3)π√π となりましたが、これで正しいでしょうか?また、(2)に関しては、  ∫∫∫[R^3] (x^2 + y^2 +z^2)e^(-Q(x,y,z)) dxdydz =∫∫∫[R^3] (x'^2 + y'^2 +z'^2)e^(-F(x',y',z')) dx'dy'dz' としたところで止まってしまいました。どうやって考えればよいのでしょうか? 以上です。どなたかお力添えしていただけないでしょうか? よろしくお願いします。長文失礼しました。

  • キーボードが刻印通りの文字を入力してくれません

    キーボードが刻印通りの文字を入力してくれません ・実際に入力してみると、次のように刻印と異なる文字が入力されます。 (刻印された文字 → 入力された文字) Shift + 2 → * Shift + 6 → ' Shift + 7 → : Shift + 8 → ) Shift + 9 → 反応なし Shift + 0 → 反応なし 正常なキーボード 1 2 3 4 5 6 7 8 9 0 - ^ \ q w e r t y u i o p @ [ a s d f g h j k l ; : ] z x c v b n m , . / \ 当該ELECOMのキーボード 1 2 3 4 5 6 7 8 9 0 - & 反応なし q w e r t y u i o p " @ a s d f g h j k l ; + [ z x c v b n m , . / ] 入力がしづらいので困っています。 ※OKWAVEより補足:「エレコム株式会社の製品」についての質問です。

  • 間違いをご指摘ください。

    p,qは実数、2つのグラフ y=e^xとy=log(x-p)+q のグラフがただ一つ共有点をもつとき、2p-qの最大値を求めよ。 この問題はpとqをtで表して考えていく解法でできることは、前回の質問で教えていただきました。 それとは別に下記のような解答を考えたのですが、どこが間違っているのかよく分かりません。ご指摘ください。 共有点のx座標をx=tとする。2つのグラフはx=tで接することから、 (1)・・e^t=1/(t-p) , (2)・・e^t=log(t-p)+q (1)からt-p=e^(-t) これとe^t=1/(t-p)を(2)に代入して、 1/(t-p)=loge^(-t)+q =-t+q よって、(t-p)(-t+q)=1 ゆえに、t^2-(p+q)t+pq+1=0。 t^2-(p+q)t+pq+1=0 この解が t>pに存在するから、 ア・・軸 (p+q)/2<pのとき、解存在しない イ・・軸 (p+q)/2>pのとき、 判別式=(p+q)^2-4pq-4>=0 よって、pとqの条件をもとめると、q>p+2 この領域で、2p-qを求めようと考えましたが、当然最大値は決まりません。どこが間違っているのかよろしくお願いします。

  • アルファベットの小文字の起源(大文字と形が同じもの/違うもの)

    英語のアルファベットの小文字は、私なりに分類すると 1.大文字と全く同じ形のもの  c o s v w x z 2.大文字にかなり似ているもの  f k p u y 3.大文字を筆記体で書いたものに似ているもの  g 4.大文字と似ていないもの  a b d e h i j l m n q r t です。 小文字の起源をご存じの方いらっしゃいましたら、 なぜ上記のようになっているか教えてください。

  • エクセル 半角英数6文字以上 8文字の入力制限

    エクセルのあるセル内に入力させた文字のチェックにあたり で半角英数(0,1,2,3,4,5,6,7,8,9)と(a,b,c,d,e,f,g,h,i,j,k,l,n,m,o,p,q,r,s,t,u,v,w,x,y,z) (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,) の組み合わせによる6文字以上8文字以内、さらに数字のみの 組み合わせを禁止したチェックを行ないたいのです。 現状 LENB関数で6未満 LENB関数で9以上をエラー ISNUMBER関数でTRUEの場合エラーとしているのですが 半角カタカナや記号に対してチェックをかける関数が 分かりません。 入力されてくるセルに対するチェックの関数は 半角カタカナチェックの関数式 記号チェックの関数式と別に分けていただいても構いませんので アドバイスいただけましたら幸いです。

  • 変換テーブルを使った、文字列置換[JavaScript]

    以下のような、変換テーブルがあるとします。 var ascii = [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; var htmlChar = [' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; ブラウザの「ソースを見る」で、ソースを見るとHTMLのフォームのテキスト入力フィールドのvalueに特殊文字コード「'」と表示されているとします。 例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" /> これを変換テーブルを使って、ブラウザの「ソースを見る」で、ソースを見たときに、特殊文字(' なら '(シングルクォート)に表示させたいのですが、可能でしょうか? 変更後の例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" />

  • 2行のセルの入れ替え。

     初めまして、よろしくお願いします。  セルに A B C D E F G H I J K L 1 a b c d e f 2 g h i j k l 3 m n o p q r 4 s t u v w x 5 " ・ " ・ " ・ " 100 "  という表があります。これを A B C D E F G H I J K L 1 a b c d e f g h i j k l 2 m n o p q r s t u v w x 3 " 4 " 5 " ・ " ・ " ・ " 100 "  という風に、偶数行のデーターを奇数行の後ろにつけるようにしたいと思います。無理ならば奇数行だけのデーター、偶数行だけのデーターとなるように、何かよい方法を教えて頂きたく、よろしくお願いします。

  • MCプログラムです。間違い等をご指摘・ご指導くだ…

    MCプログラムです。間違い等をご指摘・ご指導ください。 よろしくお願いいたします。 以下のプログラムで アクリル板にφ3,4のエンドミルで描画しようとしています。 日立 立形マシニングセンタ MACCMATIC-406Vを使用します。 間違っている、不要(無駄)な命令や 1行にできる、また1行にできない等々の命令がありましたら どうかご教授ください。 % O1234 N001 G28 G91 X0 Y0 Z0 N002 G54 N003 T03 N004 M06 N005 G00 G90 X31.0 Y36.24 N006 G43 Z30.0 H03 N007 S3000 M03 N008 G00 Z5.0 M08 N009 G01 Z-1.0 F50 N010 G02 I19.0 J-6.24 N011 G02 X20.0 Y60.0 R40.0 N012 G02 X44.0 Y49.16 R40.0 N013 G00 Z5.0 N014 G00 X38.0 Y46.0 N015 G01 Z-1.0 F50 N016 G03 X20.0 Y60.0 R40.0 N017 G00 Z5.0 N018 G00 X56.0 Y49.16 N019 G01 Z-1.0 F50 N020 G02 X80.0 Y60.0 R40.0 N021 G02 X69.0 Y36.24 R40.0 N022 G00 Z5.0 N023 G00 X62.0 Y46.0 N024 G01 Z-1.0 F50 N025 G02 X80.0 Y60.0 R40.0 N026 G00 Z5.0 N027 G00 X65.0 Y30.0 N028 G01 Z-1.0 F50 N029 G03 X55.0 Y25.0 R12.0 N030 G00 Z5.0 N031 G00 X45.0 Y25.0 N032 G01 Z-1.0 F50 N033 G03 X35.0 Y30.0 R12.0 N034 G00 Z5.0 N035 G00 X25.0 Y29.0 N036 G01 Z-1.0 F50 N037 X42.0 Y20.0 N038 G00 Z5.0 N039 G00 X41.0 Y17.0 N040 G01 Z-1.0 F50 N041 X27.0 N042 G00 Z5.0 N043 G00 X30.0 Y10.0 N044 G01 Z-1.0 F50 N045 X42.0 Y13.0 N046 G00 Z5.0 N047 G00 X46.0 Y12.0 N048 G01 Z-1.0 F50 N049 G03 X50.0 Y16.0 R4.0 N050 G02 I-1.0 J1.0 N051 G02 I1.0 J1.0 N052 G03 X54.0 Y12.0 R4.0 N053 G00 Z5.0 N054 G00 X58.0 Y13.0 N055 G01 Z-1.0 F50 N056 X70.0 Y10.0 N057 G00 Z5.0 N058 G00 X73.0 Y17.0 N059 G01 Z-1.0 F50 N060 X59.0 N061 G00 Z5.0 N062 G00 X58.0 Y20.0 N063 G01 Z-1.0 F50 N064 X75.0 Y29.0 N065 G00 Z5.0 M09 N070 M05 N071 G28 G91 X0 Y0 Z0 N072 G49 N073 T04 N074 M06 N075 G00 G90 X35.0 Y75.0 N076 G43 Z30.0 H04 N077 G00 Z5.0 M08 N078 G01 Z-1.0 F50 N079 G02 X15.0 Y75.0 R10.0 N080 G01 Y80.0 N081 G02 X35.0 Y80.0 R10.0 N082 G00 Z5.0 N083 G00 X40.0 Y65.0 N084 G01 Z-1.0 N085 X50.0 Y90.0 N086 X60.0 Y65.0 N087 G00 Z5.0 N088 G00 X43.6 Y74.0 N089 G01 Z-1.0 N090 X56.4 N091 G00 Z5.0 N092 G00 X65.0 Y90.0 N093 G01 Z-1.0 N094 X85.0 N091 G00 Z5.0 N092 G00 X75.0 N093 G01 Z-1.0 N094 Y65.0 N095 G00 Z5.0 M09 N096 M05 N097 G28 G91 X0 Y0 Z0 N098 G49 N099 M30 % どうかよろしくお願いいたします。。

専門家に質問してみよう