decimal create data 092 c, 032 c, 065 c, 032 c, 070 c, 111 c, 114 c, 116 c, 104 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 046 c, 032 c, 032 c, 078 c, 101 c, 097 c, 108 c, 032 c, 066 c, 114 c, 105 c, 100 c, 103 c, 101 c, 115 c, 044 c, 032 c, 083 c, 101 c, 112 c, 116 c, 101 c, 109 c, 098 c, 101 c, 114 c, 032 c, 050 c, 048 c, 048 c, 054 c, 046 c, 010 c, 092 c, 032 c, 084 c, 104 c, 101 c, 032 c, 113 c, 117 c, 105 c, 099 c, 107 c, 101 c, 115 c, 116 c, 032 c, 070 c, 111 c, 114 c, 116 c, 104 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 032 c, 105 c, 115 c, 032 c, 115 c, 105 c, 109 c, 112 c, 108 c, 121 c, 058 c, 032 c, 115 c, 111 c, 117 c, 114 c, 099 c, 101 c, 032 c, 116 c, 121 c, 112 c, 101 c, 010 c, 092 c, 032 c, 083 c, 111 c, 109 c, 101 c, 032 c, 109 c, 097 c, 121 c, 032 c, 112 c, 114 c, 101 c, 102 c, 101 c, 114 c, 058 c, 032 c, 032 c, 058 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 032 c, 032 c, 091 c, 032 c, 115 c, 111 c, 117 c, 114 c, 099 c, 101 c, 032 c, 093 c, 032 c, 115 c, 108 c, 105 c, 116 c, 101 c, 114 c, 097 c, 108 c, 032 c, 116 c, 121 c, 112 c, 101 c, 032 c, 059 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 010 c, 092 c, 032 c, 070 c, 111 c, 114 c, 032 c, 116 c, 104 c, 101 c, 032 c, 114 c, 101 c, 115 c, 116 c, 044 c, 032 c, 116 c, 104 c, 101 c, 114 c, 101 c, 039 c, 115 c, 032 c, 116 c, 104 c, 105 c, 115 c, 032 c, 097 c, 098 c, 115 c, 117 c, 114 c, 100 c, 108 c, 121 c, 045 c, 099 c, 111 c, 109 c, 112 c, 108 c, 101 c, 120 c, 032 c, 118 c, 101 c, 114 c, 115 c, 105 c, 111 c, 110 c, 033 c, 010 c, 010 c, 049 c, 048 c, 032 c, 099 c, 111 c, 110 c, 115 c, 116 c, 097 c, 110 c, 116 c, 032 c, 101 c, 111 c, 108 c, 010 c, 056 c, 032 c, 099 c, 111 c, 110 c, 115 c, 116 c, 097 c, 110 c, 116 c, 032 c, 100 c, 097 c, 116 c, 097 c, 045 c, 119 c, 105 c, 100 c, 116 c, 104 c, 010 c, 048 c, 032 c, 099 c, 111 c, 110 c, 115 c, 116 c, 097 c, 110 c, 116 c, 032 c, 115 c, 101 c, 110 c, 116 c, 105 c, 110 c, 101 c, 108 c, 010 c, 010 c, 058 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 104 c, 101 c, 097 c, 100 c, 101 c, 114 c, 032 c, 040 c, 032 c, 045 c, 045 c, 032 c, 041 c, 032 c, 032 c, 046 c, 034 c, 032 c, 100 c, 101 c, 099 c, 105 c, 109 c, 097 c, 108 c, 034 c, 032 c, 099 c, 114 c, 032 c, 046 c, 034 c, 032 c, 099 c, 114 c, 101 c, 097 c, 116 c, 101 c, 032 c, 100 c, 097 c, 116 c, 097 c, 034 c, 032 c, 099 c, 114 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 046 c, 100 c, 097 c, 116 c, 097 c, 032 c, 040 c, 032 c, 099 c, 104 c, 097 c, 114 c, 032 c, 045 c, 045 c, 032 c, 041 c, 032 c, 032 c, 115 c, 062 c, 100 c, 032 c, 060 c, 035 c, 032 c, 035 c, 032 c, 035 c, 032 c, 035 c, 032 c, 035 c, 062 c, 032 c, 116 c, 121 c, 112 c, 101 c, 032 c, 046 c, 034 c, 032 c, 032 c, 099 c, 044 c, 032 c, 034 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 063 c, 099 c, 114 c, 032 c, 040 c, 032 c, 097 c, 100 c, 100 c, 114 c, 032 c, 045 c, 045 c, 032 c, 097 c, 100 c, 100 c, 114 c, 032 c, 041 c, 032 c, 032 c, 100 c, 117 c, 112 c, 032 c, 049 c, 043 c, 032 c, 100 c, 097 c, 116 c, 097 c, 045 c, 119 c, 105 c, 100 c, 116 c, 104 c, 032 c, 109 c, 111 c, 100 c, 032 c, 048 c, 061 c, 032 c, 105 c, 102 c, 032 c, 099 c, 114 c, 032 c, 116 c, 104 c, 101 c, 110 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 100 c, 097 c, 116 c, 097 c, 032 c, 040 c, 032 c, 045 c, 045 c, 032 c, 041 c, 010 c, 032 c, 032 c, 048 c, 032 c, 098 c, 101 c, 103 c, 105 c, 110 c, 032 c, 032 c, 100 c, 117 c, 112 c, 032 c, 099 c, 104 c, 097 c, 114 c, 115 c, 032 c, 100 c, 097 c, 116 c, 097 c, 032 c, 043 c, 032 c, 099 c, 064 c, 032 c, 063 c, 100 c, 117 c, 112 c, 032 c, 119 c, 104 c, 105 c, 108 c, 101 c, 032 c, 032 c, 046 c, 100 c, 097 c, 116 c, 097 c, 032 c, 032 c, 063 c, 099 c, 114 c, 032 c, 032 c, 099 c, 104 c, 097 c, 114 c, 043 c, 032 c, 114 c, 101 c, 112 c, 101 c, 097 c, 116 c, 032 c, 032 c, 100 c, 114 c, 111 c, 112 c, 010 c, 032 c, 032 c, 115 c, 101 c, 110 c, 116 c, 105 c, 110 c, 101 c, 108 c, 032 c, 046 c, 100 c, 097 c, 116 c, 097 c, 032 c, 032 c, 099 c, 114 c, 032 c, 099 c, 114 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 046 c, 099 c, 104 c, 097 c, 114 c, 032 c, 040 c, 032 c, 099 c, 104 c, 097 c, 114 c, 032 c, 045 c, 045 c, 032 c, 041 c, 032 c, 032 c, 100 c, 117 c, 112 c, 032 c, 101 c, 111 c, 108 c, 032 c, 061 c, 032 c, 105 c, 102 c, 032 c, 032 c, 100 c, 114 c, 111 c, 112 c, 032 c, 099 c, 114 c, 032 c, 032 c, 101 c, 108 c, 115 c, 101 c, 032 c, 032 c, 101 c, 109 c, 105 c, 116 c, 032 c, 032 c, 116 c, 104 c, 101 c, 110 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 099 c, 111 c, 100 c, 101 c, 032 c, 040 c, 032 c, 045 c, 045 c, 032 c, 041 c, 010 c, 032 c, 032 c, 100 c, 097 c, 116 c, 097 c, 032 c, 098 c, 101 c, 103 c, 105 c, 110 c, 032 c, 032 c, 100 c, 117 c, 112 c, 032 c, 099 c, 064 c, 032 c, 032 c, 063 c, 100 c, 117 c, 112 c, 032 c, 119 c, 104 c, 105 c, 108 c, 101 c, 032 c, 032 c, 046 c, 099 c, 104 c, 097 c, 114 c, 032 c, 032 c, 099 c, 104 c, 097 c, 114 c, 043 c, 032 c, 114 c, 101 c, 112 c, 101 c, 097 c, 116 c, 032 c, 032 c, 100 c, 114 c, 111 c, 112 c, 032 c, 059 c, 010 c, 010 c, 058 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 032 c, 040 c, 032 c, 045 c, 045 c, 032 c, 041 c, 032 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 104 c, 101 c, 097 c, 100 c, 101 c, 114 c, 032 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 100 c, 097 c, 116 c, 097 c, 032 c, 032 c, 113 c, 117 c, 105 c, 110 c, 101 c, 045 c, 099 c, 111 c, 100 c, 101 c, 032 c, 059 c, 010 c, 010 c, 113 c, 117 c, 105 c, 110 c, 101 c, 010 c, 000 c, \ A Forth quine. Neal Bridges, September 2006. \ The quickest Forth quine is simply: source type \ Some may prefer: : quine [ source ] sliteral type ; quine \ For the rest, there's this absurdly-complex version! 10 constant eol 8 constant data-width 0 constant sentinel : quine-header ( -- ) ." decimal" cr ." create data" cr ; : .data ( char -- ) s>d <# # # # #> type ." c, " ; : ?cr ( addr -- addr ) dup 1+ data-width mod 0= if cr then ; : quine-data ( -- ) 0 begin dup chars data + c@ ?dup while .data ?cr char+ repeat drop sentinel .data cr cr ; : .char ( char -- ) dup eol = if drop cr else emit then ; : quine-code ( -- ) data begin dup c@ ?dup while .char char+ repeat drop ; : quine ( -- ) quine-header quine-data quine-code ; quine