偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

用這個(gè)奇葩的語言來面試,絕對會(huì)斃掉90%的人......

開發(fā) 開發(fā)工具
文件夾編程語言再次提醒我們,我們看到的Python, Java源代碼不過是一種編碼形式,你完全可以用其他編碼形式來存儲(chǔ)信息,例如文件夾,空文件。

 [[440479]]

先給大家看一幅圖

這是什么鬼?這些層層疊疊、奇奇怪怪的文件夾是干嘛的?

我如果告訴你它實(shí)際上是一個(gè)程序,你相信嗎?

它還真是一段程序, 相當(dāng)于Python代碼:

  1. print('h'

這段代碼使用一種叫做Folder的編程語言寫成,也就是說,完全用“文件夾”實(shí)現(xiàn)代碼!

這些文件夾只要保證一定的次序,每個(gè)文件夾中有一定數(shù)量的子文件夾,它就是程序了! 根本不關(guān)心文件夾下有什么內(nèi)容。

文件夾的名稱根本不重要,所以我們可以把上面的轉(zhuǎn)化成這樣一幅圖:

還是沒有感覺?我用文件夾語言的語法來拆解一下。

這個(gè)文件夾表示一個(gè)程序的開始,我們暫時(shí)把它稱為root

但是這個(gè)程序要做什么事情?

我們得看看root的第一個(gè)子目錄下有多少個(gè)目錄

根據(jù)print語法的規(guī)定,它后面要跟一個(gè)表達(dá)式,在root的第二個(gè)子目錄中描述:

expr的第一個(gè)子目錄是這樣的:

那這個(gè)“字面量”的類型到底是字符,數(shù)字,還是字符串呢?

根據(jù)文件夾編程語言的語法,需要看expr的第二個(gè)子目錄:

那這個(gè)字符的值具體是什么呢?需要看expr的第三個(gè)子目錄

最后再簡化一下:

稍微學(xué)過一點(diǎn)兒編譯原理知識(shí)的同學(xué),估計(jì)早就明白了,這不就是一顆抽象語法樹(AST)嗎?

有了AST,我就可以寫個(gè)程序,解釋執(zhí)行它了。

針對這個(gè)AST,它就是 print('h')。

真相大白,這個(gè)所謂的文件夾編程語言就是把代碼編碼到了文件夾當(dāng)中!

用文件夾之間的次序關(guān)系,和文件夾中的子文件夾的數(shù)量來表示信息。

當(dāng)然, 這是一種非常繁瑣的編程語言,如果要寫個(gè)Hello World是這個(gè)樣子的:

這個(gè)Hello World 需要208個(gè)文件夾!

你要是用這種方式編程,肯定會(huì)發(fā)瘋的。

如果用Folder來做白板編程面試,估計(jì)一個(gè)Hello World就能斃掉90%的人吧圖片

不過“文件夾編程語言”的作者Daniel Temkin“炫耀”說,雖然文件夾很多,但是卻有一個(gè)好處:不占用空間!

當(dāng)然這是不可能的,文件夾的元數(shù)據(jù)肯定是要占據(jù)硬盤空間的。

這樣的編程語言有實(shí)際的用處嗎?

恐怕是沒有吧!

但是,它應(yīng)了Linus Tovarlds那句話:Just for Fun 。

自己找點(diǎn)兒樂子,然后從中學(xué)習(xí)一點(diǎn)編譯的知識(shí),這就夠了。

Reddit有個(gè)網(wǎng)友評(píng)論說,他是一個(gè)學(xué)校高性能計(jì)算機(jī)中心的管理員, 學(xué)生想存儲(chǔ)數(shù)據(jù)的話可以使用免費(fèi)空間, 超過配額就需要付費(fèi)。

其中有個(gè)學(xué)生想了一個(gè)天才的想法,他把要存儲(chǔ)的數(shù)據(jù),編碼成了數(shù)十億個(gè)空文件,這樣一分錢都沒有花!因?yàn)閙etadata并不計(jì)費(fèi)。

但是這個(gè)計(jì)算中新的metadata服務(wù)器就掛掉了,任何人都沒法用高性能計(jì)算機(jī)了......

這個(gè)故事和Folder編程語言有異曲同工之妙。

文件夾編程語言再次提醒我們,我們看到的Python, Java源代碼不過是一種編碼形式,你完全可以用其他編碼形式來存儲(chǔ)信息,例如文件夾,空文件。

所以,發(fā)揮你的想象力,盡情地去找樂子吧 。

Folder語言的具體語法可以到這里查看:

https://esolangs.org/wiki/Folders

代碼在GitHub:

https://github.com/rottytooth/Folders

Python版本不到500行。

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2020-10-19 07:51:25

Linux軟件錯(cuò)

2020-08-24 15:25:27

Python 開發(fā)運(yùn)維

2020-08-24 13:15:59

Python代碼描述符

2021-10-15 06:49:37

MySQL

2021-09-25 13:05:10

MYSQL開發(fā)數(shù)據(jù)庫

2024-10-08 08:14:08

用戶生命周期分析服務(wù)

2024-05-11 08:33:45

JavaJVM虛擬機(jī)

2019-10-24 08:56:38

語言代碼Java

2020-03-09 10:43:10

面試中項(xiàng)目經(jīng)驗(yàn)

2019-12-03 08:29:39

代碼調(diào)優(yōu)網(wǎng)絡(luò)

2025-06-24 08:05:00

函數(shù)重載編譯器編程

2015-08-27 13:24:59

招聘

2021-06-06 16:31:57

PythonPython 3.7 編程語言

2020-12-18 07:34:48

Spring配置文件

2010-06-11 13:02:50

MySQL數(shù)據(jù)庫

2017-10-11 09:41:03

谷歌

2020-12-24 10:00:12

PythonPython基礎(chǔ)阿姆斯特朗數(shù)

2018-11-21 08:12:19

人工智能失業(yè)機(jī)器

2025-05-23 08:00:00

VLAN虛擬局域網(wǎng)網(wǎng)絡(luò)

2022-02-20 20:12:21

TypeScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)