非程序猿学习什么计算机语言比较好?C语言已经学过了,有没有什么语言打的代码比较少的?
回复内容:
说到打的代码比较少……我就列几种在Code Golf(Programming Puzzles & Code Golf Stack Exchange)中表现突出的语言吧。前三个是APL家的(参见 @bhuztez 的回答 ),后面的都是专为Code Golf设计的语言。当然,这些语言我全部不懂。- APL
- J
- K
- GolfScript
- CJam
- Pyth
- Clip
- Sclipting
python 或者 ruby 这种正经的脚本语言都可以。 在很多层面上看,Python就是21世纪的Basic。很适合非程序员 建议学一下Java,这样你就会觉得所有语言打代码都很少了。
// --------------------------
哦,其实我不是因为黑Java啰嗦而黑Java啰嗦。而是因为Java很难避免被某些人乱七八糟的加入一些模式什么的,变得自然啰嗦。
比Java更Verbose的语言有不少,比如评论里面提到的Visual Basic,比如Ada。却也不觉得读起来或者写起来比Java更蠢更累。
OK,你们说有IDE,你们说可以有Extraction, Completing 和 Refactoring的帮助可以让你们少些很多很多的代码。但是你们少些的代码能证明你们的Java代码不啰嗦吗?!能吗?!能吗!!!
艹!
// ---------------------------
Learn You a Haskell for Great Good! racket 我的回答是haskell:
1. 用类似数学的方法书写程序:
f x = 2 * x - 1
2. 递归
不管是函数递归还是递归的类型(这样说没错吧)表达起来极为方便:
链表的定义:
data Linklist a = Node a (Linklist a)
树的定义:
data Tree a = Node a (Tree a) (Tree a)
没有更简便的了吧
这也算简短代码的部分了吧。
3. 函数组合
通过函数组合将简单的函数组合为更复杂的函数而无需重写
foo = unwords . (map toUpper) . words . reverse
使用了函数科里化 运行起来大概是这样:
ghci > foo "i have a dream"
MAERD A EVAH I
4. 泛型
可以使用类型变量(如a)代替一类的类型
head :: [a] -> Maybe a
head [] = Nothing
head x:xs = Maybe x
这样就不必一个类型一个对应的取头元素的函数了
5. 类型类
类型类很好用,比如我希望一种类型可以进行相等性运算可以这样:
data Foo a = Foo a --new defined type
instance Eq (Foo al) where
Foo a == Foo b = a == b
6. 模式匹配
这个绝对是省代码量的利器好吗~
lucky :: Int -> String
lucky 7 = "You're lucky"
lucky x = "Unlucky"
如果模式多了还可以考虑门卫:
tellWeightState :: Int -> String
tellWeightState x
| x > 140 = " Too Fat"
| x | otherwise = " Oll Korrect "
(反正俺是感觉比if-else,switch好用得多)
-----------分割线-----
7. list comprehension
如果想生成一个列表(甚至是无穷长度的),复杂的写法就是写一个函数然后返回符合要求的列表--但在haskell只需要像数学里的集合一样写就可以达到预期目标!:
>lst = [x^2 | x 试试看:
>take lst 4
[1, 4, 9, 16]
而且就算是Python来写这段代码,也仍要更多的代码量(字符数),而且并不是:无穷的
你只能这样:
lst = [ x * x for x in range(1, 4)]
这样直接得到拥有四个元素的列表,但如果我需要更多呢,下一步就是函数化了吧,于是又增加了代码量
虽然haskell里的这种写法也是语法糖,但是可比Python甜得多
8. lambda
同样是相较于Python
Python对lambda有很大的限制(只允许有一条语句)
但haskell中对lambda函数没有限制
这个例子在「Learn You a Haskell」里的对bracketOnError的使用中有体现
而且...lambda在haskell里很_简_短:
Python: foo = lambda x : x + 2
Haskell : foo = \x -> x + 2
上例在haskell里甚至可以更短,下一点讨论
9. 部分应用
上例的haskell代码可以直接简写为:
foo = (+ 2)
这就叫部分应用,函数组合利用的也正是这种原理,说到底都是函数科里化带来的好处
-----------------分割线
想起来再答:有错误请指出,轻喷,感谢阅读 python 找个程序员秘书,你动动嘴就可以了,一行代码都不用写。 Python和lua,还可以学学c#和Java,不要学c++脑袋疼。 要代码短,APL家族随便选一门就可以了。要知道在codegolf上,J语言可是经常毫无压力击败专门为codegolf开发的GolfScript的。
谁说APL难学的,看见APL IS EASY TO LEARN没?

图摘自 APL In Exposition

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。
