Last active
December 27, 2019 07:22
-
-
Save youz/81b1f934cf7fa708db2941123d7f938a to your computer and use it in GitHub Desktop.
lazy-nk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require "io/wait" | |
| if $*.length < 1 | |
| puts "usage: ruby lazynk.rb sourcefile" | |
| exit(1) | |
| end | |
| NHK = ->(x){->(y){->(z){x[z][y[z]]}}} | |
| 国民 = car = ->(x){->(y){x}} | |
| cdr = ->(x){->(y){y}} | |
| cons = ->(x){->(y){->(b){b[x][y]}}} | |
| succ = ->(n){->(f){->(x){f[n[f][x]]}}} | |
| cnums = [->(f){->(x){x}}] | |
| i2c = ->(i){cnums[i] || (cnums[i] = succ[i2c[i-1]])} | |
| c2i = ->(c){c[->(n){n + 1}][0]} | |
| eoi = ->(b){ b[i2c[256]][eoi] } | |
| input = ($stdin.ready? ? $stdin.read.encode(Encoding::UTF_8) : "").bytes.reverse.inject(eoi){|a,i| cons[i2c[i]][a]} | |
| prog = File.open($*[0], "r:utf-8"){|f| f.read }.gsub(/から/,'[').gsub(/を守る党/,']') | |
| output = eval(prog)[input] | |
| buf = [] | |
| while true | |
| i = c2i[output[car]] | |
| if !i.is_a?(Integer) | |
| $stderr.puts "ERROR: #{output[car]} is not a Church numeral" | |
| break | |
| end | |
| break if i >= 256 | |
| buf << i | |
| output = output[cdr] | |
| end | |
| puts buf.pack("C*").force_encoding(Encoding::UTF_8) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| s/NHK/S/g | |
| s/から/(/g | |
| s/国民/K/g | |
| s/を守る党/)/g | |
| :loop | |
| s/\(\w*\)(\(\w*\))/o\1_\2c/ | |
| t loop | |
| y/o_c/( )/ | |
| s/((S K) K)/I/g |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| s/NHK/s/g | |
| s/から/(/g | |
| s/国民/k/g | |
| s/を守る党/)/g | |
| :loop | |
| s/\([`sk]*\)(\([`sk]*\))/`\1\2/ | |
| t loop | |
| s/``sk[sk]/i/g |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| NHKからNHKを守る党からNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKを守る党を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKから国民からNHKを守る党を守る党から国民を守る党を守る党からNHKからNHKから国民からNHKを守る党を守る党からNHKから国民から国民を守る党を守る党からNHKから国民からNHKを守る党を守る党から国民を守る党を守る党を守る党を守る党から国民からNHKから国民からNHKからNHKから国民からNHKを守る党を守る党からNHKから国民からNHKからNHKから国民を守る党から国民を守る党を守る党を守る党を守る党からNHKから国民から国民を守る党を守る党からNHKからNHKから国民からNHKからNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党から国民を守る党を守る党からNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党からNHKを守る党を守る党を守る党を守る党からNHKからNHKから国民を守る党から国民を守る党を守る党から国民からNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKを守る党を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党から国民を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党を守る党を守る党から国民からNHKから国民からNHKを守る党を守る党から国民を守る党を守る党を守る党を守る党を守る党を守る党を守る党を守る党を守る党からNHKから国民から国民を守る党を守る党から国民を守る党を守る党を守る党を守る党を守る党から国民を守る党から国民を守る党から国民からNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党から国民を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党から国民からNHKからNHKからNHKを守る党からNHKを守る党を守る党からNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党からNHKから国民を守る党から国民を守る党を守る党からNHKからNHKからNHKからNHKからNHKを守る党からNHKを守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKを守る党を守る党を守る党からNHKからNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKを守る党を守る党を守る党からNHKからNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKからNHKを守る党からNHKを守る党からNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党からNHKを守る党を守る党を守る党から国民からNHKからNHKを守る党からNHKから国民を守る党から国民を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党から国民からNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党から国民を守る党を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党からNHKからNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKを守る党を守る党を守る党からNHKから国民を守る党から国民を守る党を守る党からNHKから国民を守る党から国民を守る党を守る党から国民からNHKからNHKを守る党からNHKからNHKからNHKを守る党からNHKを守る党を守る党からNHKからNHKからNHKを守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党を守る党から国民からNHKからNHKを守る党からNHKからNHKを守る党からNHKからNHKからNHKを守る党からNHKを守る党を守る党からNHKからNHKからNHKを守る党からNHKを守る党を守る党からNHKからNHKを守る党からNHKから国民を守る党を守る党を守る党を守る党を守る党を守る党を守る党を守る党 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
sample.nkは↓を元に生成
https://github.com/rst76/Lazy-K/blob/master/hello_world.lazy