亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5504 | 回復(fù): 7
打印 上一主題 下一主題

自動(dòng)類型推導(dǎo)的作用 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-03-15 18:18 |只看該作者 |倒序?yàn)g覽
我看過一些帶自動(dòng)類型推導(dǎo)的語言的介紹,包括 ML 和 Haskell。它們都強(qiáng)調(diào)了自動(dòng)類型推導(dǎo)減輕了程序員的負(fù)擔(dān),因?yàn)槟悴槐孛總(gè)函數(shù)都寫上類型簽名。但另一方面,它們又說:寫上類型簽名好處多多。

我覺得這兩個(gè)說法是熊掌和魚,不能兼得。它們這樣說,有虛假廣告的嫌疑。

個(gè)人覺得還是應(yīng)該寫上簽名。解釋器或編譯器其實(shí)并不輕信我們的簽名,它還會(huì)用自動(dòng)推導(dǎo)來核對。我覺得這才是自動(dòng)類型推導(dǎo)真正有意義的地方。

大家以為如何?

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報(bào)告]
發(fā)表于 2009-03-15 18:48 |只看該作者
原帖由 win_hate 于 2009-3-15 18:18 發(fā)表
我看過一些帶自動(dòng)類型推導(dǎo)的語言的介紹,包括 ML 和 Haskell。它們都強(qiáng)調(diào)了自動(dòng)類型推導(dǎo)減輕了程序員的負(fù)擔(dān),因?yàn)槟悴槐孛總(gè)函數(shù)都寫上類型簽名。但另一方面,它們又說:寫上類型簽名好處多多。

我覺得這兩個(gè)說法是熊掌和魚,不能兼得。它們這樣說,有虛假廣告的嫌疑。

也不能這么說。許多時(shí)候做快速原型開發(fā)的時(shí)候,完全可以不寫類型而盡量依賴自動(dòng)推導(dǎo)。這就好像 Perl 的詞法變量,在你寫一些一次性腳本的時(shí)候完全可以不用,但在做工程性開發(fā)的時(shí)候最好還是盡量用
個(gè)人覺得還是應(yīng)該寫上簽名。解釋器或編譯器其實(shí)并不輕信我們的簽名,它還會(huì)用自動(dòng)推導(dǎo)來核對。我覺得這才是自動(dòng)類型推導(dǎo)真正有意義的地方。

這只是一方面,類型還可以起到文檔的作用,Haskell 的許多函數(shù),你只要看它的類型,往往就能猜到它的語義,更不要說能了解它的用法了。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-03-15 18:55 |只看該作者
關(guān)于自動(dòng)推導(dǎo),資料上是這樣寫的

1. First, every well-typed expression is guaranteed to have a unique principal type(explained below),

2. the principal type can be inferred automatically.

An expression's or function's principal type is the least general type that, intuitively, "contains all instances of the expression". For example, the principal type of head is [a]->a, not ->a.


這樣看來,如果我把簽名都寫上,編譯器是不是就不需要類型推導(dǎo)了?只要按我給出的簽名檢驗(yàn)是否沖突就可以了?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-03-15 18:58 |只看該作者
>> 這只是一方面,類型還可以起到文檔的作用,Haskell 的許多函數(shù),你只要看它的類型,往往就能猜到它的語義,更不要說能了解它的用法了。


是有這個(gè)作用。

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
5 [報(bào)告]
發(fā)表于 2009-03-15 18:59 |只看該作者
原帖由 win_hate 于 2009-3-15 18:55 發(fā)表
關(guān)于自動(dòng)推導(dǎo),資料上是這樣寫的



這樣看來,如果我把簽名都寫上,編譯器是不是就不需要類型推導(dǎo)了?只要按我給出的簽名檢驗(yàn)是否沖突就可以了?

它不推導(dǎo)怎么知道你有沒有寫對?

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-03-15 19:02 |只看該作者
原帖由 MMMIX 于 2009-3-15 18:59 發(fā)表

它不推導(dǎo)怎么知道你有沒有寫對?


比如 c 語言,一個(gè)表達(dá)式最終也能算出一個(gè)類型來,但這個(gè)應(yīng)該不是我們所說的“自動(dòng)類型推導(dǎo)”。

我覺得部分類型沒有給出的前提下才需要  infer.

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-03-15 20:01 |只看該作者
原帖由 win_hate 于 2009-3-15 18:55 發(fā)表
這樣看來,如果我把簽名都寫上,編譯器是不是就不需要類型推導(dǎo)了?只要按我給出的簽名檢驗(yàn)是否沖突就可以了?

檢查有無沖突叫type checking類型檢查,和type inference類型推導(dǎo)有很大差別
強(qiáng)大的type inference可以簡化編寫工作量,更重要的是,有力支持了polymorphic type機(jī)制

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
8 [報(bào)告]
發(fā)表于 2009-03-15 20:05 |只看該作者
原帖由 win_hate 于 2009-3-15 19:02 發(fā)表


比如 c 語言,一個(gè)表達(dá)式最終也能算出一個(gè)類型來,但這個(gè)應(yīng)該不是我們所說的“自動(dòng)類型推導(dǎo)”。

嗯,這個(gè)是檢查類型是否匹配。
我覺得部分類型沒有給出的前提下才需要  infer.

沒錯(cuò)。若是全部的類型信息都給出了,只需要檢查是否匹配就可以了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP