<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF</id>
	<title>Текст пузомерки на Лисп - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF"/>
	<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF&amp;action=history"/>
	<updated>2026-10-12T23:39:52Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF&amp;diff=375&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF&amp;diff=375&amp;oldid=prev"/>
		<updated>2023-02-27T18:39:19Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:39, 27 февраля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF&amp;diff=374&amp;oldid=prev</id>
		<title>lor&gt;Mandala: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%A2%D0%B5%D0%BA%D1%81%D1%82_%D0%BF%D1%83%D0%B7%D0%BE%D0%BC%D0%B5%D1%80%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%9B%D0%B8%D1%81%D0%BF&amp;diff=374&amp;oldid=prev"/>
		<updated>2017-06-10T22:43:20Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Tip|content=Яничегонепонял. Напишите понятно, шо это такое и зачем нужно}}&lt;br /&gt;
&lt;br /&gt;
Программа писана больше для личного употребления, поэтому у нее практически нет интерфейса. Файл для подсчета захардкоден в самом конце, в виде пути к файлу типа &amp;quot;advlib.lisp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для разбора различных языков используются макросы типа make-lisp-classifier, использование конкретного макроса тоже хардкодидся в последней строке.&lt;br /&gt;
&lt;br /&gt;
Примечание: текст слегка не влез по ширине, поэтому советую скопипастить его для изучения и/или использования. Если кто-нибудь отформатирует, буду очень благодарен --[[User:eugine_kosenko|Евгений Косенко]] 05-Jul-2008 17:25 MSD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(require 'lexer)&lt;br /&gt;
(in-package lexer)&lt;br /&gt;
&lt;br /&gt;
(defun lex-class (class-def)&lt;br /&gt;
  (mapcar &lt;br /&gt;
  #'(lambda (regex) `(,regex (return (values ,(car class-def) %0))))&lt;br /&gt;
  (cdr class-def)))&lt;br /&gt;
&lt;br /&gt;
(defmacro defclassifier (name class-list skip-list)&lt;br /&gt;
  `(deflexer ,name&lt;br /&gt;
    :flex-compatible &lt;br /&gt;
    ,@(mapcan #'lex-class class-list)&lt;br /&gt;
    ,@(mapcar #'list skip-list)))&lt;br /&gt;
&lt;br /&gt;
(defclassifier make-ocaml-classifier&lt;br /&gt;
  ((:keyword&lt;br /&gt;
   .(&amp;quot;!=&amp;quot; &amp;quot;%&amp;quot; &amp;quot;&amp;amp;&amp;quot; &amp;quot;&amp;amp;&amp;amp;&amp;quot; &amp;quot;,&amp;quot; &amp;quot;:&amp;quot; &amp;quot;::&amp;quot; &amp;quot;;&amp;quot; &amp;quot;;;&amp;quot; &amp;quot;&amp;lt;&amp;quot; &amp;quot;&amp;lt;\\-&amp;quot; &amp;quot;=&amp;quot; &amp;quot;&amp;gt;&amp;quot; &amp;quot;&amp;gt;=&amp;quot; &amp;quot;@&amp;quot; &amp;quot;Array&amp;quot;&lt;br /&gt;
    &amp;quot;List&amp;quot; &amp;quot;Queue&amp;quot; &amp;quot;\\(&amp;quot; &amp;quot;\\)&amp;quot; &amp;quot;\\*&amp;quot; &amp;quot;\\+&amp;quot; &amp;quot;\\-&amp;quot; &amp;quot;\\-&amp;gt;&amp;quot; &amp;quot;\\.&amp;quot; &amp;quot;\\[&amp;quot; &amp;quot;\\]&amp;quot; &amp;quot;\\{&amp;quot;&lt;br /&gt;
    &amp;quot;\\|&amp;quot; &amp;quot;\\|\\|&amp;quot; &amp;quot;\\}&amp;quot; &amp;quot;assoc&amp;quot; &amp;quot;create&amp;quot; &amp;quot;do&amp;quot; &amp;quot;done&amp;quot; &amp;quot;else&amp;quot; &amp;quot;flush&amp;quot; &amp;quot;for&amp;quot; &amp;quot;fun&amp;quot;&lt;br /&gt;
    &amp;quot;function&amp;quot; &amp;quot;if&amp;quot; &amp;quot;in&amp;quot; &amp;quot;iter&amp;quot; &amp;quot;length&amp;quot; &amp;quot;let&amp;quot; &amp;quot;loop&amp;quot; &amp;quot;make_matrix&amp;quot; &amp;quot;map&amp;quot; &amp;quot;not&amp;quot;&lt;br /&gt;
    &amp;quot;pop&amp;quot; &amp;quot;push&amp;quot; &amp;quot;raise&amp;quot; &amp;quot;then&amp;quot; &amp;quot;to&amp;quot; &amp;quot;true&amp;quot; &amp;quot;try&amp;quot; &amp;quot;with&amp;quot; &amp;quot;filter&amp;quot; &amp;quot;make&amp;quot; &amp;quot;init&amp;quot;&lt;br /&gt;
    &amp;quot;string&amp;quot; &amp;quot;String&amp;quot; &amp;quot;index&amp;quot; &amp;quot;ignore&amp;quot; &amp;quot;rec&amp;quot; &amp;quot;open&amp;quot; &amp;quot;val&amp;quot; &amp;quot;bool&amp;quot; &amp;quot;int&amp;quot; &amp;quot;array&amp;quot;&lt;br /&gt;
    &amp;quot;when&amp;quot; &amp;quot;copy&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
  (:meanword&lt;br /&gt;
   .(&amp;quot;\&amp;quot;[^\&amp;quot;]*\&amp;quot;&amp;quot; &amp;quot;'[^']*'&amp;quot; &amp;quot;(-)?[0-9]+&amp;quot; &amp;quot;[A-Za-z_][A-Za-z_]*(')?&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
  ;skipword&lt;br /&gt;
  (&amp;quot;//.*$&amp;quot; &amp;quot;[:space:]+&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
(defclassifier make-c++-classifier&lt;br /&gt;
  ((:keyword&lt;br /&gt;
   .(&amp;quot;!=&amp;quot; &amp;quot;#include&amp;quot; &amp;quot;%&amp;quot; &amp;quot;&amp;amp;&amp;quot; &amp;quot;,&amp;quot; &amp;quot;:&amp;quot; &amp;quot;::&amp;quot; &amp;quot;;&amp;quot; &amp;quot;&amp;lt;&amp;quot; &amp;quot;&amp;lt;&amp;lt;&amp;quot; &amp;quot;=&amp;quot; &amp;quot;&amp;gt;&amp;quot; &amp;quot;&amp;gt;=&amp;quot; &amp;quot;&amp;gt;&amp;gt;&amp;quot; &amp;quot;\\(&amp;quot;&lt;br /&gt;
    &amp;quot;\\)&amp;quot; &amp;quot;\\*&amp;quot; &amp;quot;\\+&amp;quot; &amp;quot;\\+\\+&amp;quot; &amp;quot;\\-&amp;gt;&amp;quot; &amp;quot;\\.&amp;quot; &amp;quot;\\[&amp;quot; &amp;quot;\\]&amp;quot; &amp;quot;\\{&amp;quot; &amp;quot;\\|\\|&amp;quot; &amp;quot;\\}&amp;quot;&lt;br /&gt;
    &amp;quot;bool&amp;quot; &amp;quot;class&amp;quot; &amp;quot;const&amp;quot; &amp;quot;for&amp;quot; &amp;quot;if&amp;quot; &amp;quot;int&amp;quot; &amp;quot;namespace&amp;quot; &amp;quot;operator&amp;quot; &amp;quot;return&amp;quot; &amp;quot;std&amp;quot;&lt;br /&gt;
    &amp;quot;struct&amp;quot; &amp;quot;try&amp;quot; &amp;quot;typedef&amp;quot; &amp;quot;using&amp;quot; &amp;quot;void&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
  (:meanword&lt;br /&gt;
   .(&amp;quot;\&amp;quot;[^\&amp;quot;]*\&amp;quot;&amp;quot; &amp;quot;(-)?[0-9]+&amp;quot; &amp;quot;[A-Za-z_][A-Za-z_]*&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
  ;skipword&lt;br /&gt;
  (&amp;quot;//.*$&amp;quot; &amp;quot;[:space:]+&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
(defclassifier make-python-classifier&lt;br /&gt;
  ((:keyword &lt;br /&gt;
   .(&amp;quot;\\|&amp;quot; &amp;quot;\\&amp;amp;&amp;quot; &amp;quot;\\\\&amp;quot; &amp;quot;\\+=&amp;quot; &amp;quot;==&amp;quot; &amp;quot;\\-&amp;quot; &amp;quot;\\{&amp;quot; &amp;quot;\\}&amp;quot; &amp;quot;!=&amp;quot; &amp;quot;%&amp;quot; &amp;quot;,&amp;quot; &amp;quot;:&amp;quot; &amp;quot;&amp;lt;&amp;quot; &amp;quot;=&amp;quot; &amp;quot;&amp;gt;&amp;quot; &amp;quot;&amp;gt;=&amp;quot; &amp;quot;\\(&amp;quot; &amp;quot;\\)&amp;quot; &amp;quot;\\*&amp;quot; &amp;quot;\\+&amp;quot; &amp;quot;\\.&amp;quot; &lt;br /&gt;
    &amp;quot;\\[&amp;quot; &amp;quot;\\]&amp;quot;&lt;br /&gt;
    &amp;quot;__class__&amp;quot; &amp;quot;__init__&amp;quot; &amp;quot;__name__&amp;quot; &amp;quot;__unicode__&amp;quot; &amp;quot;append&amp;quot; &amp;quot;class&amp;quot; &amp;quot;cond&amp;quot; &amp;quot;def&amp;quot;&lt;br /&gt;
    &amp;quot;dict&amp;quot; &amp;quot;except&amp;quot; &amp;quot;for&amp;quot; &amp;quot;if&amp;quot; &amp;quot;import&amp;quot; &amp;quot;in&amp;quot; &amp;quot;join&amp;quot; &amp;quot;lambda&amp;quot; &amp;quot;len&amp;quot; &amp;quot;list&amp;quot; &amp;quot;print&amp;quot;&lt;br /&gt;
    &amp;quot;return&amp;quot; &amp;quot;setattr&amp;quot; &amp;quot;try&amp;quot; &amp;quot;unicode&amp;quot; &amp;quot;yield&amp;quot; &amp;quot;raise&amp;quot; &amp;quot;or&amp;quot; &amp;quot;pass&amp;quot; &amp;quot;xrange&amp;quot; &amp;quot;__str__&amp;quot; &amp;quot;break&amp;quot; &lt;br /&gt;
    &amp;quot;None&amp;quot; &amp;quot;is&amp;quot; &amp;quot;while&amp;quot; &amp;quot;has_key&amp;quot; &amp;quot;from&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
  (:meanword&lt;br /&gt;
   .(&amp;quot;`[^']+`&amp;quot; &amp;quot;\&amp;quot;[^\&amp;quot;]*\&amp;quot;&amp;quot; &amp;quot;(-)?[0-9]+&amp;quot; &amp;quot;[A-Za-z_][A-Za-z_]*&amp;quot; &amp;quot;u?'[^']*'&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
  ;skipword  &lt;br /&gt;
  (&amp;quot;#.*$&amp;quot; &amp;quot;[:space:]+&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
(defclassifier make-lisp-classifier&lt;br /&gt;
  ((:keyword &lt;br /&gt;
   .(&amp;quot;&amp;amp;body&amp;quot; &amp;quot;#\\.&amp;quot; &amp;quot;\\-&amp;quot; &amp;quot;#[cC]&amp;quot; &amp;quot;1-&amp;quot; &amp;quot;\\.&amp;quot; &amp;quot;#'&amp;quot; &amp;quot;%&amp;quot; &amp;quot;&amp;amp;key&amp;quot; &amp;quot;&amp;amp;optional&amp;quot; &amp;quot;'&amp;quot; &amp;quot;,&amp;quot; &amp;quot;,@&amp;quot; &amp;quot;/&amp;quot; &amp;quot;1\\+&amp;quot; &amp;quot;:&amp;quot; &amp;quot;:test&amp;quot; &amp;quot;&amp;lt;&amp;quot; &amp;quot;&amp;lt;&amp;gt;&amp;quot; &amp;quot;=&amp;quot;&lt;br /&gt;
    &amp;quot;&amp;gt;&amp;quot; &amp;quot;&amp;gt;=&amp;quot; &amp;quot;\\(&amp;quot; &amp;quot;\\)&amp;quot; &amp;quot;\\*&amp;quot; &amp;quot;\\+&amp;quot; &amp;quot;`&amp;quot; &amp;quot;and&amp;quot; &amp;quot;break&amp;quot; &amp;quot;caar&amp;quot; &amp;quot;cond&amp;quot; &amp;quot;defun&amp;quot; &amp;quot;eq&amp;quot;&lt;br /&gt;
    &amp;quot;equal&amp;quot; &amp;quot;gethash&amp;quot; &amp;quot;if&amp;quot; &amp;quot;in-package&amp;quot; &amp;quot;lambda&amp;quot; &amp;quot;length&amp;quot; &amp;quot;list&amp;quot; &amp;quot;make-hash-table&amp;quot;&lt;br /&gt;
    &amp;quot;make-instance&amp;quot; &amp;quot;not&amp;quot; &amp;quot;print&amp;quot; &amp;quot;progn&amp;quot; &amp;quot;push&amp;quot; &amp;quot;setf&amp;quot; &amp;quot;setq&amp;quot; &amp;quot;slot-value&amp;quot;&lt;br /&gt;
    &amp;quot;string=&amp;quot; &amp;quot;t&amp;quot; &amp;quot;terpri&amp;quot; &amp;quot;append&amp;quot; &amp;quot;reverse&amp;quot; &amp;quot;cadr&amp;quot; &amp;quot;min&amp;quot; &amp;quot;reduce&amp;quot; &amp;quot;assoc&amp;quot; &amp;quot;throw&amp;quot;&lt;br /&gt;
    &amp;quot;mapcan&amp;quot; &amp;quot;remove-if&amp;quot; &amp;quot;defmacro&amp;quot; &amp;quot;remove&amp;quot; &amp;quot;pairlis&amp;quot; &amp;quot;defconstant&amp;quot; &amp;quot;across&amp;quot; &amp;quot;read-line&amp;quot; &amp;quot;listen&amp;quot;&lt;br /&gt;
    &amp;quot;while&amp;quot; &amp;quot;upfrom&amp;quot; &amp;quot;with-open-file&amp;quot; &amp;quot;finally&amp;quot; &amp;quot;format&amp;quot; &amp;quot;princ&amp;quot; &amp;quot;complex&amp;quot; &amp;quot;let&amp;quot; &amp;quot;do&amp;quot; &amp;quot;to&amp;quot; &amp;quot;from&amp;quot; &amp;quot;for&amp;quot;&lt;br /&gt;
    &amp;quot;loop&amp;quot; &amp;quot;eql&amp;quot; &amp;quot;member&amp;quot; &amp;quot;null&amp;quot; &amp;quot;or&amp;quot; &amp;quot;imagpart&amp;quot; &amp;quot;realpart&amp;quot; &amp;quot;cons&amp;quot; &amp;quot;car&amp;quot; &amp;quot;cdr&amp;quot; &amp;quot;nil&amp;quot; &amp;quot;defvar&amp;quot;&lt;br /&gt;
    &amp;quot;eval&amp;quot; &amp;quot;eval&amp;quot; &amp;quot;mapcar&amp;quot; &amp;quot;&amp;amp;rest&amp;quot; &amp;quot;read&amp;quot; &amp;quot;with-open-stream&amp;quot; &amp;quot;return&amp;quot; &amp;quot;unless&amp;quot; &amp;quot;read-from-string&amp;quot;&lt;br /&gt;
    &amp;quot;string&amp;quot; &amp;quot;concatenate&amp;quot; &amp;quot;remove-dublicates&amp;quot; &amp;quot;#c&amp;quot; &amp;quot;:conc-name&amp;quot; &amp;quot;defctruct&amp;quot; &amp;quot;max&amp;quot; &amp;quot;case&amp;quot; &amp;quot;require&amp;quot;&lt;br /&gt;
    &amp;quot;initially&amp;quot; &amp;quot;remove-duplicates&amp;quot; &amp;quot;quote&amp;quot; &amp;quot;:count&amp;quot; &amp;quot;when&amp;quot; &amp;quot;upto&amp;quot; &amp;quot;\\(\\)&amp;quot; &amp;quot;count&amp;quot; &amp;quot;numberp&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
  (:meanword&lt;br /&gt;
   .(&amp;quot;#\\\\.&amp;quot; &amp;quot;\&amp;quot;[^\&amp;quot;]*\&amp;quot;&amp;quot; &amp;quot;(\\-)?[0-9]+&amp;quot; &amp;quot;[A-Za-z][A-Za-z0-9\\-\\+!]*&amp;quot; &amp;quot;[\\[]&amp;quot; &amp;quot;[\\]]&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
  ;skipword  &lt;br /&gt;
  (&amp;quot;;.*$&amp;quot; &amp;quot;[:space:]+&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
(defun collect-stats (token-stream keywords meanwords trace-lex)&lt;br /&gt;
   (multiple-value-bind &lt;br /&gt;
    (class value) (funcall token-stream)&lt;br /&gt;
    (cond ((eq class nil))&lt;br /&gt;
        (t (cond ((eq class :keyword)&lt;br /&gt;
              (setf (gethash value keywords) (1+ (gethash value keywords 0))))&lt;br /&gt;
              ((eq class :meanword)&lt;br /&gt;
              (setf (gethash value meanwords) (1+ (gethash value meanwords 0))))&lt;br /&gt;
              (t (throw :invalid-class (values nil class))))&lt;br /&gt;
          (cond&lt;br /&gt;
          (trace-lex&lt;br /&gt;
           (prin1 class)&lt;br /&gt;
           (prin1 &amp;quot; &amp;quot;)&lt;br /&gt;
           (prin1 value)&lt;br /&gt;
           (terpri)))&lt;br /&gt;
          (collect-stats token-stream keywords meanwords trace-lex)))))&lt;br /&gt;
&lt;br /&gt;
(defun hash-sum (hash)&lt;br /&gt;
  (let ((sum 0)) &lt;br /&gt;
   (maphash #'(lambda (k v) (declare (ignore k)) (incf sum v)) hash)&lt;br /&gt;
   sum))&lt;br /&gt;
&lt;br /&gt;
(defun hash-keys (hash)&lt;br /&gt;
  (let ((keys ()))&lt;br /&gt;
   (maphash #'(lambda (k v) (declare (ignore v)) (push k keys)) hash) keys))&lt;br /&gt;
&lt;br /&gt;
(defun % (part total)&lt;br /&gt;
  (values (round (float (* 100 (/ part total))))))&lt;br /&gt;
&lt;br /&gt;
(defun lo-stats (token-stream trace-lex show-classes)&lt;br /&gt;
     (let &lt;br /&gt;
      ((keywords (make-hash-table :test #'equal)) (meanwords (make-hash-table :test #'equal)))&lt;br /&gt;
    (collect-stats token-stream keywords meanwords trace-lex)&lt;br /&gt;
    (cond&lt;br /&gt;
     (show-classes&lt;br /&gt;
      (princ &amp;quot;Keywords: &amp;quot;)&lt;br /&gt;
      (prin1 (hash-keys keywords))&lt;br /&gt;
      (terpri)&lt;br /&gt;
      (princ &amp;quot;Meanwords: &amp;quot;)&lt;br /&gt;
      (prin1 (hash-keys meanwords))&lt;br /&gt;
      (terpri)))&lt;br /&gt;
    (values&lt;br /&gt;
     (hash-sum keywords)&lt;br /&gt;
     (hash-sum meanwords)&lt;br /&gt;
     (hash-table-count keywords)&lt;br /&gt;
     (hash-table-count meanwords))))&lt;br /&gt;
&lt;br /&gt;
(defun hi-stats (token-stream &amp;amp;key (trace-lex nil) (show-classes nil))&lt;br /&gt;
  (multiple-value-bind &lt;br /&gt;
  (keyword-length meaning-length keyword-thesaurus meaning-thesaurus)&lt;br /&gt;
  (lo-stats token-stream trace-lex show-classes)&lt;br /&gt;
  (let ((total-length (+ keyword-length meaning-length))&lt;br /&gt;
      (total-thesaurus (+ keyword-thesaurus meaning-thesaurus)))&lt;br /&gt;
    (list&lt;br /&gt;
    (cons &amp;quot;Total length&amp;quot; total-length)&lt;br /&gt;
    (cons &amp;quot;Meaning length&amp;quot; meaning-length)&lt;br /&gt;
    (cons &amp;quot;Total thesaurus&amp;quot; total-thesaurus)&lt;br /&gt;
    (cons &amp;quot;Meaning thesaurus&amp;quot; meaning-thesaurus)&lt;br /&gt;
    (cons &amp;quot;Total saturation (%)&amp;quot; (% meaning-length total-length))&lt;br /&gt;
    (cons &amp;quot;Thesaurus saturation (%)&amp;quot; (% meaning-thesaurus total-thesaurus))&lt;br /&gt;
    (cons &amp;quot;Total expressiveness (%)&amp;quot; (% total-thesaurus total-length))&lt;br /&gt;
    (cons &amp;quot;Meaning expressiveness (%)&amp;quot; &lt;br /&gt;
        (if (&amp;gt; meaning-length 0) (% meaning-thesaurus meaning-length) 0))))))&lt;br /&gt;
&lt;br /&gt;
(defun print-result (result-table)&lt;br /&gt;
  (mapcar&lt;br /&gt;
   #'(lambda (pair) (format t &amp;quot;~A~50T~7D~%&amp;quot; (car pair) (cdr pair)))&lt;br /&gt;
   result-table))&lt;br /&gt;
&lt;br /&gt;
(defun read-content (file-name)&lt;br /&gt;
  (with-open-file &lt;br /&gt;
  (s file-name)&lt;br /&gt;
  (let&lt;br /&gt;
     ((data (make-string (file-length s)))) &lt;br /&gt;
    (read-sequence data s) data)))&lt;br /&gt;
&lt;br /&gt;
(print-result (hi-stats (make-lisp-classifier (read-content &amp;quot;advworld.lisp&amp;quot;))))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Lisp]]&lt;/div&gt;</summary>
		<author><name>lor&gt;Mandala</name></author>
	</entry>
</feed>