1樓:
這是我採用JSON結構設計的乙個鍵值型資料庫,對程式設計師非常友好,是完全物件導向的設計,現在在做的是查詢,計畫採用類似Linq這樣的語法,SQL對程式設計師非常不友好啊
2樓:喬拉爵士
C#中有LINQ,比手寫SQL要方便直觀一些,不過沒有手寫SQL功能強大。
作為乙個程式設計師,沒覺得SQL語法難懂,就是常感覺關係型資料庫效能不夠用,而且不好並行擴張其容量/效能
3樓:
你這種風格叫List Comprehension,Erlang裡常見的寫法就是這樣的啊。你讓那些整天嚷嚷Erlang不符合人類思維的情何以堪啊。
簡單的不如直接用MatchSpec解決。
1>Tab=
ets:
new(
student,).
16400
2>ets:
insert
(Tab,).
true
3>ets:
insert
(Tab,).
true
4>ets:
select
(Tab,[,
,['$_'
]}]).
5>ets:
select
(Tab,[,
,[}]}]).
6>ets:
select
(Tab,[,
,['$2'
]}]).
[betty]7
>參考Erlang -- ets
用qlc的時候,你會發現用List Comprehension這種風格,最自然的還是寫成兩個查詢
#!/usr/bin/env escript-include_lib
("stdlib/include/qlc.hrl"
).main
()->
Student
=ets
:new
(student,[
set]),
ets:
insert
(Student,),
ets:
insert
(Student,),
ets:
insert
(Student,),
Score
=ets
:new
(score,[
bag]),
ets:
insert
(Score,),
ets:
insert
(Score,),
ets:
insert
(Score,),
ets:
insert
(Score,),
ets:
insert
(Score,),
L1=qlc:e(
qlc:q(
[N||<-
ets:
table
(Score),S
<90],
)),L2
=qlc:e
(qlc:q
([N2||
<-ets:
table
(Score
),<-
ets:
table
(Score
),not
lists
:member(N1
,L1),C1
==C2
],)),io:
format("
~w~n",
[L2]),ok
.參考Erlang -- qlc
這個問題,可以用 Datalog 來表示,看得更清楚。
name(97
,alice
).name(98
,betty
).name(99
,carol
).score(97
,1,90
).score(97
,2,90
).score(98
,1,80
).score(98
,2,90
).score(99
,3,80
).q1(N
):score(N
,C,S
),S<
90.q2(N2
):score(N1
,C,S1
),notq1(
N1),
score(N2
,C,S2
).就是這樣
為什麼我覺得 Actor 很難用?
是可以完全不用鎖的,至少在使用者態。綁核全走非同步就行了,比如 seastar.io 非要說硬體鎖也是鎖。那就是鑽牛角尖了 Vincent Zhang 題主你說得對,Actor確實就是通過區域性序列解決併發的。併發是Actor必須要解決的問題,而Actor的存在並不僅是為了解決併發。而你說的FP,i...
為什麼我覺得Windows系統非常難用?
Spencer Lyo uwp和WinForm兩種程式確實會引起迷惑。我之前也研究了一會才明白咋回事。但整體來說Windows還是更適合大眾使用者的,你去體驗一下Linux或者macos就知道了。日常生活和娛樂性方面感覺Windows勝出,各種實用小工具數不勝數,但質量參差不齊 Windows開發門...
什麼時候覺得人生太難了?
曹菲 乙個對婚姻十分挑剔謹慎的人,意識到嫁了乙個自己愛的比較多的人,受盡了委屈,對方不在意自己的想法,也包容不了接納不了自己的負面情緒,懷孕8個月,感受到了人生的壓力,讓自己不得不勇敢站起來,自己來愛自己。 趙糰子 大概就是好好的一碗面,吃出了乙個蒼蠅 好好的在走路,遇到了乙個大石頭 好好的乙個朋友...