diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1995-02-01 19:48:24 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:31 +0900 |
commit | 897cf066952978ccbae1d57bbc14a03c7b98a1e1 (patch) | |
tree | bc83424954929dc9574e40a0aee874f45965a8ae /sample | |
parent | 5d828b25d4ae30a000c054a724ac248dadbb97b3 (diff) |
version 0.65v0_65
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.65.tar.gz
Wed Feb 1 19:48:24 1995 Yukihiro Matsumoto (matz@ix-02)
* string.c(str_replace): 置き換える文字列の長さが等しい時メモリコ
ピーをしない.
* string.c(rindex): バグ修正.
Mon Jan 30 11:23:05 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y(value_expr): ifのチェックを追加.
* gc.c(gc_mark): free cellの扱いにバグ.
* parse.y: 文法の変更(よりシンプルに).例外を減らした.
Thu Jan 26 00:52:55 1995 Yukihiro Matsumoto (matz@dyna)
* parse.y: 引数として連想配列を置くことができるように.この場合,
連想配列リテラルが最終引数となる.
* parse.y: 配列参照の`[]'内が空でもよいことにした.
Tue Jan 24 14:45:15 1995 Yukihiro Matsumoto (matz@ix-02)
* class.c(rb_include_module): `-v'を指定した時にはincludeしたモジュー
ルとクラス定数が衝突していないかチェックする.
Mon Jan 23 10:42:09 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y(rb_class2name): メタクラスに関するbug fix.
* dict.c: Dict[..]で辞書の生成が出来るように.
* array.c: Array[..]で配列の生成が出来るように.
* parse.y: 辞書の表現として{a,b,..}という形式も許すように.
Fri Jan 20 10:28:38 1995 Yukihiro Matsumoto (matz@ix-02)
* re.c(Regexp.quote): 正規表現をエスケープするメソッド.
* 無駄なrb_intern()を減らした.
* parse.y: `!', `!=', `!~'を特殊演算子にする.よってこれらは再定義
できなくなった.
Wed Jan 18 13:20:41 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y: 文法の整理(unless,untilをなくした).
Tue Jan 17 11:11:27 1995 Yukihiro Matsumoto (matz@ix-02)
* eval.c: defでメソッド再定義時にはスーパークラスのメソッドの可視
性を継承する.最初の定義の時は今までと同じデフォルト(トップレベ
ルで関数的,クラス定義内で通常メソッド).
* object.c(Class::new): オブジェクトの生成時に関数的メ
ソッドinit_objectが必ず呼ばれるように変更.
* eval.c: 未定義のメソッドに対してunknownメソッドが呼ばれるように
なった.エラー表示が今までと同じになるようにenvを調節している.
Fri Jan 13 14:40:30 1995 Yukihiro Matsumoto (matz@ix-02)
* gc.c: gcを若干書き換えて整理した.が,あまり変化はなかったようだ.
* parse.y(yylex): symbolを\symから:symに変更した.
Thu Jan 12 01:39:28 1995 Yukihiro Matsumoto (matz@dyna)
* eval.c: 新規関数 rb_eval_string().
* gc.c: gc_mark()を一部非再帰化.
* variable.c(rb_ivar_{get,set}): インスタンス変数のアクセス周りで
チェックが足りなかった.
* variable.c: クラス定数とインスタンス変数でハッシュテーブルを共有
するようにした.
* ruby.h: iv_tblをRBasicからRObjectとRClassへ移動した.これにより,
ObjectとClass,Moduleしかインスタンス変数を持てなくなる.が,メモ
リ効率は若干向上する.
Diffstat (limited to 'sample')
-rw-r--r-- | sample/Artistic | 117 | ||||
-rw-r--r-- | sample/MANIFEST | 63 | ||||
-rw-r--r-- | sample/biorhythm.rb | 201 | ||||
-rw-r--r-- | sample/blk.rb | 8 | ||||
-rw-r--r-- | sample/clone.rb | 2 | ||||
-rw-r--r-- | sample/dir.rb | 2 | ||||
-rw-r--r-- | sample/evaldef.rb | 2 | ||||
-rw-r--r-- | sample/export.rb | 6 | ||||
-rw-r--r-- | sample/exyacc.rb | 22 | ||||
-rw-r--r-- | sample/gctest2.rb | 71 | ||||
-rw-r--r-- | sample/list.rb | 19 | ||||
-rw-r--r-- | sample/list2.rb | 6 | ||||
-rw-r--r-- | sample/list3.rb | 6 | ||||
-rw-r--r-- | sample/rcs.awk | 33 | ||||
-rw-r--r-- | sample/rcs.dat | 17 | ||||
-rw-r--r-- | sample/rcs.rb | 49 | ||||
-rw-r--r-- | sample/sieve.rb | 3 | ||||
-rwxr-xr-x | sample/uumerge.rb | 6 |
18 files changed, 593 insertions, 40 deletions
diff --git a/sample/Artistic b/sample/Artistic new file mode 100644 index 0000000000..fbf7989775 --- /dev/null +++ b/sample/Artistic @@ -0,0 +1,117 @@ + + + + + The "Artistic License" + + Preamble + +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. + +Definitions: + + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. + + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) accompany any non-standard executables with their corresponding + Standard Version executables, giving the non-standard executables + non-standard names, and clearly documenting the differences in manual + pages (or equivalent), together with instructions on where to get + the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this Package. +You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whomever generated +them, and may be sold commercially, and may be aggregated with this +Package. + +7. C subroutines supplied by you and linked into this Package in order +to emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End diff --git a/sample/MANIFEST b/sample/MANIFEST new file mode 100644 index 0000000000..c54adf31ef --- /dev/null +++ b/sample/MANIFEST @@ -0,0 +1,63 @@ +MANIFEST +Artistic +aset.rb +attr.rb +biorhythm.rb +blk.rb +case.rb +cat.rb +cat2.rb +cbreak.rb +clnt.rb +clone.rb +const.rb +dbm.rb +dir.rb +evaldef.rb +export.rb +exyacc.rb +fib.awk +fib.pl +fib.rb +fib.scm +freq.rb +fullpath.pl +fullpath.rb +gctest.rb +gctest2.rb +getopts.rb +getopts.test +hash.rb +io.rb +less.rb +list.rb +list2.rb +list3.rb +math.rb +mpart.rb +occur.pl +occur.rb +occur2.rb +opt_s.rb +opt_x.rb +parsearg.rb +rcs.awk +rcs.dat +rcs.rb +ruby-mode.el +samp.rb +sieve.rb +split.rb +struct.rb +svr.rb +system.rb +t1.rb +t2.rb +test.rb +time.rb +trap.pl +trap.rb +trojan.pl +trojan.rb +tt.rb +uumerge.rb diff --git a/sample/biorhythm.rb b/sample/biorhythm.rb new file mode 100644 index 0000000000..eb14ca7365 --- /dev/null +++ b/sample/biorhythm.rb @@ -0,0 +1,201 @@ +#!/mp/free/bin/ruby +# +# biorhythm.rb - +# $Release Version: $ +# $Revision: 1.6 $ +# $Date: 1994/02/24 10:23:34 $ +# by Yasuo OHBA(STAFS Development Room) +# +# -- +# +# +# + +$RCS_ID="$Header: /var/ohba/RCS/biorhythm.rb,v 1.6 1994/02/24 10:23:34 ohba Exp ohba $" + +include Math +load("parsearg.rb") + +$wochentag = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ] +monatstag1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +monatstag2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + +def usage() + print("Usage:\n") + print("biorhythm.rb [options]\n") + print(" options...\n") + print(" -D YYYYMMDD(birthday) : ٤ default ͤȤ. \n") + print(" --sdate | --date YYYYMMDD : system date ⤷ϻꤷդȤ.\n") + print(" --birthday YYYYMMDD : λ. \n") + print(" -v | -g : Values or Graph λ. \n") + print(" --days DAYS : ֤λ(Graph λΤͭ). \n") + print(" --help : help\n") +end +$USAGE = 'usage' + +def leapyear(y) + ta = 0 + if ((y % 4.0) == 0); ta = 1; end + if ((y % 100.0) == 0); ta = 0; end + if ((y % 400.0) == 0); ta = 1; end + return ta +end + +def bcalc(tt, m, j) + ta = 0 + if (m <= 2) + ta = (m - 1) * 31 + else + ta = leapyear(j) + ta = ta + ((306 * m - 324) / 10.0).to_i + end + ta = ta + (j - 1) * 365 + ((j - 1) / 4.0).to_i + ta = ta - ((j - 1) / 100) + ((j - 1) / 400.0).to_i + ta = ta + tt + return ta +end + +def printHeader(tg, mg, jg, gtag, tage) + print("\n") + print(" Biorhythm\n") + print(" =========\n") + print("\n") + printf("The birthday %04d.%02d.%02d is a %s\n", jg, mg, tg, $wochentag[gtag]) + printf("Age in days: [%d]\n", tage) +end + +def getPosition(z) + pi = 3.14159265 + $phys = (50.0 * (1.0 + sin((z / 23.0 - (z / 23)) * 360.0 * pi / 180.0))).to_i + $emot = (50.0 * (1.0 + sin((z / 28.0 - (z / 28)) * 360.0 * pi / 180.0))).to_i + $geist =(50.0 * (1.0 + sin((z / 33.0 - (z / 33)) * 360.0 * pi / 180.0))).to_i +end + +# +# main program +# +parseArgs(0, nil, "vg", "D:", "sdate", "date:", "birthday:", "days:") + +printf($stderr, "\n") +printf($stderr, "Biorhythm (c) 1987-1994 V3.0\n") +printf($stderr, "\n") +if ($OPT_D) + dtmp = Time.now.strftime("%Y%m%d") + jh = dtmp[0,4].to_i + mh = dtmp[4,2].to_i + th = dtmp[6,2].to_i + dtmp = $OPT_D + jg = dtmp[0,4].to_i + mg = dtmp[4,2].to_i + tg = dtmp[6,2].to_i + gtag = bcalc(tg, mg, jg) % 7 + ausgabeart = "g" +else + if ($OPT_birthday) + dtmp = $OPT_birthday + else + printf($stderr, "Birthday (YYYYMMDD) : ") + dtmp = $stdin.gets.chop + end + if (dtmp.length != 8) + printf($stderr, "BAD Input Birthday!!\n") + exit() + end + jg = dtmp[0,4].to_i + mg = dtmp[4,2].to_i + tg = dtmp[6,2].to_i + + gtag = bcalc(tg, mg, jg) % 7 + + if ($OPT_sdate) + dtmp = Time.now.strftime("%Y%m%d") + elsif ($OPT_date) + dtmp = $OPT_date + else + printf($stderr, "Date [<RETURN> for Systemdate] (YYYYMMDD) : ") + dtmp = $stdin.gets.chop + end + if (dtmp.length != 8) + dtmp = Time.now.strftime("%Y%m%d") + end + jh = dtmp[0,4].to_i + mh = dtmp[4,2].to_i + th = dtmp[6,2].to_i + + if ($OPT_v) + ausgabeart = "v" + elsif ($OPT_g) + ausgabeart = "g" + else + printf($stderr, "Values for today or Graph (v/g) [default g] : ") + ausgabeart = $stdin.gets.chop + end +end +if (ausgabeart == "v") + tag = bcalc(tg, mg, jg) + tah = bcalc(th, mh, jh) + tage = tah - tag + printHeader(tg, mg, jg, gtag, tage) + print("\n") + + getPosition(tage) + printf("Biorhythm: %04d.%02d.%02d\n", jh, mh, th) + printf("Physical: %d%%\n", $phys) + printf("Emotional: %d%%\n", $emot) + printf("Mental: %d%%\n", $geist) + print("\n") +else + if ($OPT_days) + ktage = $OPT_days.to_i + else + if ($OPT_D) + ktage = 9 + else + printf($stderr, "Graph for how many days [default 10] : ") + ktage = $stdin.gets.chop + if (ktage == "") + ktage = 9 + else + ktage = ktage.to_i - 1 + end + end + end + tag = bcalc(tg, mg, jg) + tah = bcalc(th, mh, jh) + tage = tah - tag + printHeader(tg, mg, jg, gtag, tage) + print(" P=physical, E=emotional, M=mental\n") + print(" -------------------------+-------------------------\n") + print(" Bad Condition | Good Condition\n") + print(" -------------------------+-------------------------\n") + + for z in tage..(tage + ktage) + getPosition(z) + + printf("%04d.%02d.%02d : ", jh, mh, th) + p = ($phys / 2.0 + 0.5).to_i + e = ($emot / 2.0 + 0.5).to_i + g = ($geist / 2.0 + 0.5).to_i + graph = "." * 51 + graph[25] = ?| + graph[p] = ?P + graph[e] = ?E + graph[g] = ?M + print(graph, "\n") + th = th + 1 + if (leapyear(jh) == 0) + $MONATSTAG = monatstag1 + else + $MONATSTAG = monatstag2 + end + if (th > $MONATSTAG[mh - 1]) + mh = mh + 1 + th = 1 + end + if (mh > 12) + jh = jh + 1 + mh = 1 + end + end + print(" -------------------------+-------------------------\n\n") +end diff --git a/sample/blk.rb b/sample/blk.rb index 4e618bce2d..12d1038fd0 100644 --- a/sample/blk.rb +++ b/sample/blk.rb @@ -2,8 +2,8 @@ def foo() $block = Block.new end -foo(){i | print "i = ", i, "\n"} -$block.do(2) +foo(){i| print "i = ", i, "\n"} +$block.call(2) -foo(){i | print "i*2 = ", i*2, "\n"} -$block.do(2) +foo(){i| print "i*2 = ", i*2, "\n"} +$block.call(2) diff --git a/sample/clone.rb b/sample/clone.rb index 69d2f1d52b..e7d6b00a31 100644 --- a/sample/clone.rb +++ b/sample/clone.rb @@ -3,7 +3,7 @@ # test2 # test # test -# clone.rb:13: undefined method `test2' for "#<Object: 0xbfca4>"(Object) +# clone.rb:18: undefined method `test2' for "#<Object: 0xbfca4>"(Object) foo = Object.new def foo.test print("test\n") diff --git a/sample/dir.rb b/sample/dir.rb index f269c568ba..3349dc7b6d 100644 --- a/sample/dir.rb +++ b/sample/dir.rb @@ -3,7 +3,7 @@ dirp = Dir.open(".") dirp.rewind for f in dirp - unless (~/^\./ || ~/~$/ || ~/\.o/) + if !(~/^\./ || ~/~$/ || ~/\.o/) print f, "\n" end end diff --git a/sample/evaldef.rb b/sample/evaldef.rb index 021f65800a..1d77a3c008 100644 --- a/sample/evaldef.rb +++ b/sample/evaldef.rb @@ -1,7 +1,7 @@ # method definition by eval() # output: # bar -# (eval):21: method `baz' not available for "#<foo: 0xbfc5c>"(foo) +# (eval):26: method `baz' not available for "#<foo: 0xbfc5c>"(foo) class foo def foo diff --git a/sample/export.rb b/sample/export.rb index be7b6bc797..03b9492e5a 100644 --- a/sample/export.rb +++ b/sample/export.rb @@ -4,7 +4,7 @@ # foo class foo - export(\printf) + export :printf end def foobar @@ -12,7 +12,7 @@ def foobar end f = foo.new -#foo.unexport(\printf) -foo.export(\foobar) +#foo.unexport :printf +foo.export :foobar f.foobar f.printf "%s\n", foo diff --git a/sample/exyacc.rb b/sample/exyacc.rb new file mode 100644 index 0000000000..ad6191c03d --- /dev/null +++ b/sample/exyacc.rb @@ -0,0 +1,22 @@ +#! /usr/local/bin/ruby -Cn +# usage: exyacc.rb [yaccfiles] +# this is coverted from exyacc.pl in the camel book + +$/ = nil + +while gets() + sbeg = $_.index("\n%%") + 1 + send = $_.rindex("\n%%") + 1 + $_ = $_[sbeg, send-sbeg] + sub(/.*\n/, "") + gsub(/'{'/, "'\001'") + gsub(/'}'/, "'\002'") + gsub('\*/', "\003\003") + gsub("/\\*[^\003]*\003\003", '') + while gsub(/{[^}{]*}/, ''); end + gsub(/'\001'/, "'{'") + gsub(/'\002'/, "'}'") + while gsub(/^[ \t]*\n(\s)/, '\1'); end + gsub(/([:|])[ \t\n]+(\w)/, '\1 \2') + print $_ +end diff --git a/sample/gctest2.rb b/sample/gctest2.rb new file mode 100644 index 0000000000..851d14f217 --- /dev/null +++ b/sample/gctest2.rb @@ -0,0 +1,71 @@ +# GC stress test +def cons(car, cdr) + car::cdr +end + +def car(x) + x.car +end + +def cdr(x) + x.cdr +end + +def reverse1(x, y) + if x == nil then + y + else + reverse1(cdr(x), cons(car(x), y)) + end +end + +def reverse(x) + reverse1(x, nil) +end + +def ints(low, up) + if low > up + nil + else + cons(low, ints(low+1, up)) + end +end + +def print_int_list(x) + if x == nil + print("NIL\n") + else + print(car(x)) + if cdr(x) + print(", ") + print_int_list(cdr(x)) + else + print("\n") + end + end +end + +print("start\n") + +a = ints(1, 100) +print_int_list(a) +b = ints(1, 50) +print_int_list(b) +print_int_list(reverse(a)) +print_int_list(reverse(b)) +for i in 1 .. 100 + b = reverse(reverse(b)) +# print(i, ": ") +# print_int_list(b) +end +print("a: ") +print_int_list(a) +print("b: ") +print_int_list(b) +print("reverse(a): ") +print_int_list(reverse(a)) +print("reverse(b): ") +print_int_list(reverse(b)) +a = b = nil +print("finish\n") +GC.start() diff --git a/sample/list.rb b/sample/list.rb index 1a20c954d0..fa145f4627 100644 --- a/sample/list.rb +++ b/sample/list.rb @@ -1,19 +1,10 @@ # Linked list example class MyElem - #饹å() - def MyElem.new(item) - # ѡ饹ΥåɤθƤӽФ(ξϥ饹Class) - elm = super # ѿפʤ - #elmФåɤθƤӽФ - elm.init(item) - end - - # ̾Υå - def init(item) + # ֥˼ưŪ˸ƤФå + def init_object(item) # @ѿϥѿ(פʤ) @data = item @next = nil - self end def data @@ -63,11 +54,7 @@ class MyList end class Point - def Point.new(x, y) - super.init(x, y) - end - - def init(x, y) + def init_object(x, y) @x = x; @y = y self end diff --git a/sample/list2.rb b/sample/list2.rb index fef9d35a84..1c2ca08150 100644 --- a/sample/list2.rb +++ b/sample/list2.rb @@ -1,10 +1,6 @@ # Linked list example -- short version class Point - def Point.new(x, y) - super.init(x, y) - end - - def init(x, y) + def init_object(x, y) @x = x; @y = y self end diff --git a/sample/list3.rb b/sample/list3.rb index c6278574bf..6bedc6ced9 100644 --- a/sample/list3.rb +++ b/sample/list3.rb @@ -2,11 +2,7 @@ # using _inspect class Point - def Point.new(x, y) - super.init(x, y) - end - - def init(x, y) + def init_object(x, y) @x = x; @y = y self end diff --git a/sample/rcs.awk b/sample/rcs.awk new file mode 100644 index 0000000000..08979285c9 --- /dev/null +++ b/sample/rcs.awk @@ -0,0 +1,33 @@ +BEGIN { + sw = 40.0; + dw = 78.0; + hdw = dw / 2.0; + w = 20.0; + h =1.0; + d = 0.2; + ss="abcdefghijklmnopqrstuvwxyz0123456789!#$%^&*()-=\\[];'`,./"; + rnd = srand(); +} + +{ + xr = -hdw; y = h * 1.0; maxxl = -999; + s = ""; + while (xr < hdw) { + x = xr * (1 + y) - y * w / 2; + i = (x / (1 + h) + sw /2); + c = (0 < i && i < length($0)) ? substr($0, i, 1) : "0"; + y = h - d * c; + xl = xr - w * y / (1 + y); + if (xl < -hdw || xl >= hdw || xl <= maxxl) { + t = rand() * length(ss); + c = substr(ss, t, 1); + } + else { + c = substr(s, xl + hdw, 1); + maxxl = xl; + } + s = s c; + xr = xr + 1; + } + print s; +} diff --git a/sample/rcs.dat b/sample/rcs.dat new file mode 100644 index 0000000000..61c88bff89 --- /dev/null +++ b/sample/rcs.dat @@ -0,0 +1,17 @@ +0000000000000000220000000000000000 +0000000000000111221110000000000000 +0000000000111112222111110000000000 +0000000111111112222111111110000000 +0000111111111122222211111111110000 +0111111111111222222221111111111110 +2222222222222222222222222222222222 +1122222222222222222222222222222211 +0111122222222222222222222222211110 +0011111122222222222222222211111100 +0001111111222222222222221111111000 +0000111112222222222222222111110000 +0000011122222222112222222211100000 +0000001122222221111222222211000000 +0000000122221111111111222210000000 +0000000221111111111111111220000000 +0000000000000000000000000000000000 diff --git a/sample/rcs.rb b/sample/rcs.rb new file mode 100644 index 0000000000..faa4606788 --- /dev/null +++ b/sample/rcs.rb @@ -0,0 +1,49 @@ +# random dot steraogram +# usage: rcs.rb rcs.dat + +sw = 40.0 # ̃p^[̕ +dw = 78.0 # Random Character Streogram ̕ +hdw = dw / 2.0 +w = 20.0 # ̕ +h =1.0 # ʂƊʂ̋ +d = 0.2 # Pʓ̕オ +ss="abcdefghijklmnopqrstuvwxyz0123456789!#$%^&*()-=\\[];'`,./" +rnd = srand() + +while gets() +# print($_) + xr = -hdw; y = h * 1.0; maxxl = -999 + s = ""; + while xr < hdw + x = xr * (1 + y) - y * w / 2 + i = (x / (1 + h) + sw /2) + if (1 < i && i < $_.length); + c = $_[i, 1].to_i + else + c = 0 + end + y = h - d * c + xl = xr - w * y / (1 + y); + if xl < -hdw || xl >= hdw || xl <= maxxl + tt = rand(ss.length) + c = ss[tt, 1] + else + c = s[xl + hdw, 1] + maxxl = xl + end + s += c + xr += 1 + end + print(s, "\n") +end + + + + + + + + + + + diff --git a/sample/sieve.rb b/sample/sieve.rb index 192a5865d8..eaf4e33e2c 100644 --- a/sample/sieve.rb +++ b/sample/sieve.rb @@ -1,6 +1,6 @@ # sieve of Eratosthenes sieve = [] -unless max = $ARGV.shift; max = 100; end +if ! max = $ARGV.shift; max = 100; end max = max.to_i print "1" @@ -15,3 +15,4 @@ for i in 2 .. max resque end end +print "\n" diff --git a/sample/uumerge.rb b/sample/uumerge.rb index 420a3924b6..d0bd016036 100755 --- a/sample/uumerge.rb +++ b/sample/uumerge.rb @@ -8,7 +8,7 @@ while gets() end end -fail "missing begin" unless $sawbegin; +fail "missing begin" if !$sawbegin; OUT = open($file, "w") if $file != ""; while gets() @@ -18,10 +18,10 @@ while gets() end sub(/[a-z]+$/, ""); # handle stupid trailing lowercase letters continue if /[a-z]/ - continue unless ((($_[0] - 32) & 077) + 2) / 3 == $_.length / 4 + continue if !(((($_[0] - 32) & 077) + 2) / 3 == $_.length / 4) OUT << $_.unpack("u"); end -fail "missing end" unless $sawend; +fail "missing end" if ! $sawend; File.chmod $mode.oct, $file; exit 0; |