We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sample programのrat.lのなかでいくつか理解できないところがあって、基礎的なものですが、 一つ目は、三行目の親クラスのところにpropertied-objectがあるんですが、なにを表してるんでしょうか。
2つ目は、 (:prin1 (strm) (format strm "~A/~A" numer denom)) の意味がわかりません。print文の仕組みなのでしょうか、なんでsendを使わずに自動的実行されるんですか。strmは何でしょうか。
(:prin1 (strm) (format strm "~A/~A" numer denom))
また、setfとsetqは何が違うんですか。
The text was updated successfully, but these errors were encountered:
propertied-object は,デフォルトの親クラスみたいなもので,Pythonだとobjectに相当するもの,という理解で良いとおもいます. https://stackoverflow.com/questions/4015417/why-do-python-classes-inherit-object
propertied-object
object
EusLispは関数でもメンバ関数でも最後に評価(実行)された結果が,返り値になります.したがって,(format ...) の返り値がこのメンバ関数の返り値になります. format はpythonのformat や Cのprintf と同じようにフォーマットする機能で,以下のように使います.
(format ...)
format
printf
(format t "~A/~7,2f/~f~%" 10 1.234 1.234) 10/ 1.23/1.2
第一引数のtは C言語のfprintf(s, "hello world\n")の第一引数みたいなもので,フォーマットの出力を示します.tだと標準出力です.それ以外はファイルなどが有りえます.面白い使い方としては,
t
fprintf(s, "hello world\n")
(setq a (format nil "~A/~7,2f/~f~%" 10 1.234 1.234)) (print a)
などとできます.
setf は変数の一部を変更することができます.以下のようにリストやベクトルの要素を直接変更する時に利用します.
setf
$ (setq a (list 1 2 3)) (1 2 3) $ (print (elt a 1)) 2 $ (setf (elt a 1) 10) 10 115.irteusgl$ (print a) (1 10 3) $ (setq b #f(1 2 3)) #f(1.0 2.0 3.0) $ (print (elt b 1)) 2.0 $ (setf (elt b 1) 10) 10 $ (print b) #f(1.0 10.0 3.0)
===
http://euslisp.github.io/EusLisp/jmanual-node4.html
(defclass object :super NIL :slots ()) (defclass propertied-object :super object :slots (plist)) ;property list
http://euslisp.github.io/EusLisp/jmanual-node7.html
property-listを持つオブジェクトを定義する。 他のCommon Lispと違って、 EusLispは、たとえ、symbolでなかったとしても、property-listを持つ propertied-objectを継承するどんなオブジェクトも 許可する。
Sorry, something went wrong.
理解しました。 ご対応ありがとうございました。
No branches or pull requests
sample programのrat.lのなかでいくつか理解できないところがあって、基礎的なものですが、
一つ目は、三行目の親クラスのところにpropertied-objectがあるんですが、なにを表してるんでしょうか。
2つ目は、
(:prin1 (strm) (format strm "~A/~A" numer denom))
の意味がわかりません。print文の仕組みなのでしょうか、なんでsendを使わずに自動的実行されるんですか。strmは何でしょうか。
また、setfとsetqは何が違うんですか。
The text was updated successfully, but these errors were encountered: