From list data to html page with Guile

After a few weeks with Guile I can now do with Scheme what I used to do with org-mode. The work flow is still in emacs but with the Geiser and shell modes there is less overhead. With less overhead it is easier to focus on the data, the solutions, and learning Guile Scheme with emacs as a second language. Typing data into Lisp lists may be simpler than working with tables, even org-table which seem to have so much less overhead than office software spreadsheets.

With free software, even irritating administrative work demanded by bureaucracy can be fun. With some time and free approach, bureacracy doesn't have to make us stupid all the time.(fn:1)

Emacs, Guile, and Firefox

Later I will show how to convert a csv data file to associative lists, but for now this script is an example of getting data(lists) from a file(port) and using the file name and data to generate an html page with sxml. I took me a while to get used to opening ports, and to remember to set their encodings to overcome issues with Japanese characters.

At first glance the sxml->xml and backquoting seemed overwhelming, but after some immersion experiences, mapping over lists to generate markup becomes second nature. If you see a lot of (quote (unquote ... in the generated sxml, it means that you typed a single-quote “ ' ” instead of a back-tick “ ` “.

Script: scm-rll-dta-to-bry-pge.scm

Scheme roll data to bureaucracy page:

#!/usr/local/bin/guile -s
!#

(define scm-dta-fle (cadr (command-line)))

;; example naming convention:
;; ;      EK-MZ-H30K-EK1-dta.scm
(define (mke-pge-tle fname)
  (string-drop-right fname 8))
(define (mke-htm-bry-nme fname)
  (string-append
   (mke-pge-tle fname)
   "-bry.html"))
  
(use-modules (rnrs io ports) ;; open-file-input-port
             (ice-9 regex) ;; regex-subsitute/global
	     (sxml simple)  ;; sxml->xml
	     (srfi srfi-26) ;; cut
	     (srfi srfi-1) ;; iota with more than one argument
	     (ice-9 pretty-print))

(load scm-dta-fle)
;; now rll-dta, rll-hdr, cls-als are available
;; from scm-dta-fle, class dates: cls-dts
;; (define cls-dts
;;  '((10 01)(10 15)(10 22)(10 29)(11 5)(11 12)(11 19)(11 26)(12 3)(12 10)(12 17)(1 7)(1 21)(1 28)(2 4)))
(define cls-dts-to-tbl-rws
  (lambda (dts)
    (list
     `(tr (td  " ") ;; empty cell for number col
       (td (@ (class "date")) "月") ;; align right in name col
       ,@(map (lambda (n)
	       `(td (@ (class "num")),n))
	     (map car dts)))
     `(tr  (td " ") ;; empty cell for number col
       (td (@ (class "date")) "日") ;; align right in name col
       ,@(map (lambda (n)
	       `(td (@ (class "num")),n))
	      (map cadr dts))))))

;; Bureaucratic symbols for roll sheet print
(define rll-num-to-symbol
  (lambda (n)
    (if (rational? n)
	(cond
	 ((= 1 n)  "○")
	 ((= 0 n) "/")
	 ((= 2 n) "公")
	 (#t  "△"))
	"○")))

;; symbols
(define rll-dta-to-sxm-tbl-sbl ;; roll data to sxml table, w/ symbols
  (lambda (rll-dta rll-hdr dts) ;; roll data rll-dta and class dates cls-dts
    `(table (@ (class "roll rollsymbols"))
	    (tr
	     ,@(map (lambda (hd) ;; header
		      `(th ,hd))
		    rll-hdr))
	    ,(cls-dts-to-tbl-rws dts)
	    ,@(map (lambda (row)
		     `(tr
		      (td (@ (class "num")) ,(car row))
		      (td (@ (class "name")) ,(cadr row))
		      ,@(map (lambda (cn)
			       `(td (@ (class "num symbol"))
			       ,(rll-num-to-symbol cn)))
			      (cddr row))))
		     rll-dta))))

(define sxml-header
  (lambda (title)
    `(head (title ,title)
	   (meta (@ (http-equiv "Content-Type")
		    (content "text/html;charset=utf-8")))
	   (link (@ (rel "stylesheet")
		    (type "text/css")
		    (href "view2.css"))))))

(define* (rplace-string-ending str end #:optional (len 3))
  (let* ((str-len (string-length end))
	 (ln (if (> str-len len)
		 str-len
		 len)))
    (string-append
     (string-drop-right str ln)
     end)))

;; generate table of class data,
;; data to show chosen by cls-kys in scm-dta-fle.scm
(define cls-als-to-sxm-tbl
  (lambda (als kys)
    `(table (@ (class "classinfo"))
      (tr
       ,@(map (lambda (ky)
		`(th ,(car (assoc ky als))))
	      kys))
      (tr
       ,@(map (lambda (ky)
		`(td ,(cadr (assoc ky als))))
		kys)))))
;; (cls-als-to-sxm-tbl cls-als cls-kys)

(define write-sxml->html
  (lambda (fname sxml) ;; ofname:output file name;
    (let ((ofname (mke-htm-bry-nme fname)) ;; output file .html
	  (title (mke-pge-tle fname))) ;; page title
      (if (file-exists? ofname)
	  (delete-file ofname))
      (let ((op (open-file-output-port ofname)))
	(set-port-encoding! op "utf-8")
	(sxml->xml
	 `(html
	   ,(sxml-header title)
	   (body
	    ,sxml))
	 op)
	(close-port op)))))
;; (write-sxml->html   "cls-stu-als-tbls-tst1.html"
;;		    (list  (cls-als-to-sxm-tbl cls-als cls-kys)(stu-als-to-sxm-tbl stu-als stu-kys ulns)))

;; all arguments: cls-als, cls-kys, rll-dta, rll-hdr, cls-dts
;; are (associative) lists in scm-dta.scm file
;; name for .html file is derived from .scm data file
(write-sxml->html scm-dta-fle
		  (list
		   (cls-als-to-sxm-tbl
		    cls-als cls-kys)
		   (rll-dta-to-sxm-tbl-sbl
		    rll-dta rll-hdr cls-dts)))

Data: SPL-SHT-MK-H30-dta.scm

Sample Short Miyakonojyo Heisei 30 data.

A convention for naming files will probably be helpful: I'm thinking of something like “EC1-MZ-H30K-dta.scm”. The script will use the file name to derive the html page title, “EC1-MZ-H30K”, and the html file name, “EC1-MZ-H30K-bry.html”. This convention makes calling the script easy after chmod +x script.scm in the shell I can simply do:

$ ./script.scm CLS-CMPS-H30K-dta.scm
or
$ ./scm-rll-dta-to-bry-pge.scm SPL-SHT-MK-H30K-dta.scm

to get the html page CLS-CMPS-H30K-bry.html or SPL-SHT-MK-H30K-bry.html.

It took a long time, but it was fun to think of 120 or so Japanese names to use as sample data. All the names are not used here, the longer list will be used to generate seating charts for the start of the semester. The names listed are mostly people that wrote or did important things for the environment, or the Lisp languages. The “dream team” class might be more interesting when the seating charts are generated.

Hopefully there will be time to go through the process for a wider audience by avoiding the Japanese characters and using the romanized spellings.

;; data for use with scm-rll-dta-to-bry-pge.scm
;; Scheme roll data to bureaucracy page
;;  Enter data below in list:: cls-dts: class dates;
;; ;; and associative list:: rll-dta: roll data;
(define rll-hdr
  '("学籍番号" "学生氏名"   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15))
;; (cons "学籍番号" (cons "学生氏名" (iota 15 1))) 
(define cls-kys '("年度" "学期" "科目名" "開講曜日" "開講教室" "教員氏名"))
;; later use only necessary als dta below from kys above
;; cls-als: associative list data; cls-kys: class keys

;; cls-als comes from school .csv file
;; rll-dta numbers and names also from .csv file
;; ;; (define rll-dta
;; ;;   '(("1531116007" "石牟礼 道子"     1 0 1 1 1 0 1 1 0 1 1 0 1 1 1)
;; cls-dts need to be entered during/after the semester
;; (define cls-dts
;;  '((10 01)(10 15)(10 22)(10 29)(11 5)(11 12)(11 19)(11 26)(12 3)(12 10)(12 17)(1 7)(1 21)(1 28)(2 4)))
(define cls-als
  '(("年度" "2018")
 ("学期" "後期")
 ("授業コード" "32141")
 ("科目コード" "141900")
 ("科目名" "英会話Ⅰ")
 ("科目名_英語" "English ConversationⅠ")
 ("教員氏名" "ブライアン・スモール")
 ("教員氏名_カナ" "ブライアン・スモール")
 ("教員氏名_英語" "Small Brian")
 ("開講区分" "週間授業")
 ("開講曜日" "月4")
 ("開講教室" "1217(大講義)")))

(define cls-dts
  `((9 25)(10 2)(10 9)(10 16)(10 13)(10 30)(11 6)(11 13)(11 20)(11 27)(12 4)(12 11)(1 8)(1 15)(1 29)))
(define rll-dta
  '(("151116070" "相沢 佳子"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151117035" "青木 幸雄"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("151118001" "芥川 仁"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118002" "雨宮 処凛"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118004" "荒畑 寒村"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118006" "安藤 昌益"	1 1 0 0 0 1 1 1 1 1 0 0 1 2 1)
    ("151118007" "石牟礼 道子"	1 1 1 1 0 1 1 1 1 1 1 1 1 1 1)
    ("151118008" "井上 ひさし"	1 1 1 0 0 0 0 1 1 .5 1 1 1 1 1)
    ("151118009" "宇井 純"	0 1 0 1 1 1 1 1 .5 1 .5 .5 0 1 1)
    ("151118010" "上野 登"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118011" "上野 英信"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("151118012" "宇都宮 健児"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118014" "枝廣 淳子"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("151118015" "大江 健三郎"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118021" "緒方 正人"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118023" "片桐 ユズル"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("151118024" "金子 みすず"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118026" "川合 史朗"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118027" "川原 一之"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118028" "川本 輝夫"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("151118031" "北沢 洋子"	1 1 1 1 0 1 1 1 1 1 1 1 1 1 1)
    ("151118032" "木下 是雄"	1 1 0 1 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118039" "桑原 史成"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118042" "斎藤 美奈子"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118044" "佐久間 智子"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118046" "佐藤 鶴江"	0 1 0 1 1 1 1 1 .5 1 .5 .5 0 1 1)
    ("151118049" "白石 嘉治"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("151118051" "杉本 栄子"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("151118054" "DUONG DINH KHU0E" 1 0 1 1 1 1 1 .5 1 .5 .5 0 1 1)
    ("133117002" "高橋 源一郎"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("133117014" "田中 正造"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("133117005" "田中 優"	1 1 1 0 1 1 1 1 1 1 1 0 1 1 1)
    ("133117007" "谷川 雁"	1 1 0 1 1 1 1 0 0 .3 1 1 1 1 1)
    ("133117010" "辻 信一"	1 1 1 0 0 0 0 1 1 .5 1 1 1 1 1)
    ("133117016" "中村 隆市"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("133117017" "新納 浩幸"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("133117023" "原田 正純"	1 1 0 0 0 1 1 1 1 1 0 0 1 2 1)
    ("133117026" "日吉 フミコ"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("133117030" "本多 勝一"	0 1 0 1 1 1 1 1 .5 1 .5 .5 0 1 1)
    ("133117031" "松下 竜一"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("133117035" "宮本 成美"	1 1 1 0 0 0 0 1 1 .5 1 1 1 1 1)
    ("133117037" "本橋 成一"	0 0 1 1 1 1 1 0 0 0 1 .5 .3 1 1)
    ("133117045" "湯浅 誠"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)
    ("133117048" "るびきち"	1 1 1 0 1 1 1 0 0 .3 1 1 1 1 1)))

Style: view2.css

table.classinfo { margin: 2em 0 3em 0; } 
table.classinfo td, th { padding-right: 1em; text-align: left; }

table.roll th { font-weight: 50; font-size: 9pt; }
table.roll td {padding-right: .5em; text-align: left; }

table.rollsymbols td.date {font-size: 9pt; text-align: right; }
td.num { font-size: 8pt; }
td.stu { font-size: 10pt; width: 6em; }
td.blank { padding: 10px 0px 2px 0px;  text-align: center; }

Markup: SPL-SHT-MK-H30K-bry.html

Sample Short Miyakonojyo Heisei 30 Kouki Bureaucracy page

<html><head><title>SPL-SHT-MK-H30K</title><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><link rel="stylesheet" type="text/css" href="view2.css" /></head><body><table class="classinfo"><tr><th>年度</th><th>学期</th><th>科目名</th><th>開講曜日</th><th>開講教室</th><th>教員氏名</th></tr><tr><td>2018</td><td>後期</td><td>英会話Ⅰ</td><td>月4</td><td>1217(大講義)</td><td>ブライアン・スモール</td></tr></table><table class="roll rollsymbols"><tr><th>学籍番号</th><th>学生氏名</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th><th>11</th><th>12</th><th>13</th><th>14</th><th>15</th></tr><tr><td> </td><td class="date">月</td><td class="num">9</td><td class="num">10</td><td class="num">10</td><td class="num">10</td><td class="num">10</td><td class="num">10</td><td class="num">11</td><td class="num">11</td><td class="num">11</td><td class="num">11</td><td class="num">12</td><td class="num">12</td><td class="num">1</td><td class="num">1</td><td class="num">1</td></tr><tr><td> </td><td class="date">日</td><td class="num">25</td><td class="num">2</td><td class="num">9</td><td class="num">16</td><td class="num">13</td><td class="num">30</td><td class="num">6</td><td class="num">13</td><td class="num">20</td><td class="num">27</td><td class="num">4</td><td class="num">11</td><td class="num">8</td><td class="num">15</td><td class="num">29</td></tr><tr><td class="num">151116070</td><td class="name">相沢 佳子</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151117035</td><td class="name">青木 幸雄</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118001</td><td class="name">芥川 仁</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118002</td><td class="name">雨宮 処凛</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118004</td><td class="name">荒畑 寒村</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118006</td><td class="name">安藤 昌益</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">公</td><td class="num symbol">○</td></tr><tr><td class="num">151118007</td><td class="name">石牟礼 道子</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118008</td><td class="name">井上 ひさし</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118009</td><td class="name">宇井 純</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118010</td><td class="name">上野 登</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118011</td><td class="name">上野 英信</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118012</td><td class="name">宇都宮 健児</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118014</td><td class="name">枝廣 淳子</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118015</td><td class="name">大江 健三郎</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118021</td><td class="name">緒方 正人</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118023</td><td class="name">片桐 ユズル</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118024</td><td class="name">金子 みすず</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118026</td><td class="name">川合 史朗</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118027</td><td class="name">川原 一之</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118028</td><td class="name">川本 輝夫</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118031</td><td class="name">北沢 洋子</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118032</td><td class="name">木下 是雄</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118039</td><td class="name">桑原 史成</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118042</td><td class="name">斎藤 美奈子</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118044</td><td class="name">佐久間 智子</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118046</td><td class="name">佐藤 鶴江</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118049</td><td class="name">白石 嘉治</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118051</td><td class="name">杉本 栄子</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">151118054</td><td class="name">DUONG DINH KHU0E</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117002</td><td class="name">高橋 源一郎</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117014</td><td class="name">田中 正造</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117005</td><td class="name">田中 優</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117007</td><td class="name">谷川 雁</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117010</td><td class="name">辻 信一</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117016</td><td class="name">中村 隆市</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117017</td><td class="name">新納 浩幸</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117023</td><td class="name">原田 正純</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">公</td><td class="num symbol">○</td></tr><tr><td class="num">133117026</td><td class="name">日吉 フミコ</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117030</td><td class="name">本多 勝一</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117031</td><td class="name">松下 竜一</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117035</td><td class="name">宮本 成美</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117037</td><td class="name">本橋 成一</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">△</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117045</td><td class="name">湯浅 誠</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr><tr><td class="num">133117048</td><td class="name">るびきち</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">/</td><td class="num symbol">/</td><td class="num symbol">△</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td><td class="num symbol">○</td></tr></table></body></html>

footnotes

#Guile #Scheme #sxml #emacs #facdev #FreeSoftwareForTeachers #FreeSoftwerForSchoolAdministration #Japanese