1. ocean_f

    Posted

    ocean_f
Changes in title
+R リテラルなしquit
Changes in tags
+R
Changes in body
Source | HTML | Preview
@@ -0,0 +1,33 @@
+# 「No」と言えない人がワークスペースを保存しないで終了したいときに
+Raclett3さんの[文字列と数値と真理値のリテラルに親を殺されたPythonプログラミング](https://qiita.com/Raclett3/items/9e0fec83800e62dd631d)に触発されてやってみました
+リテラルについては今まで知りませんでしたが一応使わない形になっていると思います
+他にもいろいろな方法があると思いますが一例として見ていただければ
+
+参考:https://wa3.i-3-i.info/word15346.html
+
+# コード
+```r
+q(rawToChar(as.raw(as.hexmode(as.numeric(c(paste0(length(length({})),length(length({})),length({})),paste0(length(length({})),length(length({})),length(length({})))))))))
+```
+コピペすればRが終了します
+
+# 解説
+## 0と1の取得
+`{}`でNULLを取得し、`length({})`と`length(length({}))`でnumericの0と1を取得
+
+## 110と111を含むベクトルを作成
+`paste0`でcharacterの110と111を作成し、ベクトルにしてから、`as.numeric`でnumericに変換
+
+## 110と111を16進数に変換
+`as.hexmode`で110と111を6eと6fに変換
+
+## バイトコードに変換し"no"を取得
+`as.raw`で上記のベクトルをバイトコードに変換してから、`rawToChar`でcharacterの"no"に変換
+
+## "no"をqに渡して終了
+上記の"no"をqに第一引数として渡して、`save="no"`として実行させると終了する
+
+# 備考
+[文字列・数値リテラルを使わずに Hello World](https://blog.recyclebin.jp/archives/4044)の方法に倣ってやった方が簡単かもしれません
+
+