⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 punify

📁 MSYS在windows下模拟了一个类unix的终端
💻
字号:
#!/bin/sh# aside from this initial boilerplate, this is actually -*- scheme -*- codemain='(module-ref (resolve-module '\''(scripts punify)) '\'main')'exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"!#;;; punify --- Display Scheme code w/o unnecessary comments / whitespace;; 	Copyright (C) 2001 Free Software Foundation, Inc.;;;; This program is free software; you can redistribute it and/or;; modify it under the terms of the GNU General Public License as;; published by the Free Software Foundation; either version 2, or;; (at your option) any later version.;;;; This program is distributed in the hope that it will be useful,;; but WITHOUT ANY WARRANTY; without even the implied warranty of;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU;; General Public License for more details.;;;; You should have received a copy of the GNU General Public License;; along with this software; see the file COPYING.  If not, write to;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,;; Boston, MA 02111-1307 USA;;; Author: Thien-Thi Nguyen;;; Commentary:;; Usage: punify FILE1 FILE2 ...;;;; Each file's forms are read and written to stdout.;; The effect is to remove comments and much non-essential whitespace.;; This is useful when installing Scheme source to space-limited media.;;;; Example:;; $ wc ./punify ; ./punify ./punify | wc;;     89     384    3031 ./punify;;      0      42     920;;;; TODO: Read from stdin.;;       Handle vectors.;;       Identifier punification.;;; Code:(define-module (scripts punify)  :export (punify))(define (write-punily form)  (cond ((and (list? form) (not (null? form)))         (let ((first (car form)))           (display "(")           (write-punily first)           (let loop ((ls (cdr form)) (last-was-list? (list? first)))             (if (null? ls)                 (display ")")                 (let* ((new-first (car ls))                        (this-is-list? (list? new-first)))                   (and (not last-was-list?)                        (not this-is-list?)                        (display " "))                   (write-punily new-first)                   (loop (cdr ls) this-is-list?))))))        ((and (symbol? form)              (let ((ls (string->list (symbol->string form))))                (and (char=? (car ls) #\:)                     (not (memq #\space ls))                     (list->string (cdr ls)))))         => (lambda (symbol-name-after-colon)              (display #\:)              (display symbol-name-after-colon)))        (else (write form))))(define (punify-one file)  (with-input-from-file file    (lambda ()      (let ((toke (lambda () (read (current-input-port)))))        (let loop ((form (toke)))          (or (eof-object? form)              (begin                (write-punily form)                (loop (toke)))))))))(define (punify . args)  (for-each punify-one args))(define main punify);;; punify ends here

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -