我最近开始学习函数式编程,并在尝试计算一个类的测验平均值时提出了这个例子.
我想出的例子是:
scores = [90, 91, 92, 94, 95, 96, 97, 99, 100]
def add(num1, num2):
'''returns the sum of the parameters'''
return num1 + num2
import operator
timeit reduce(add, scores) / len(scores) #--> 1000000 loops, best of 3: 799 ns per loop
timeit sum(scores) / len(scores) #--> 1000000 loops, best of 3: 207 ns per loop
timeit reduce(operator.add, scores) / len(scores) #--> 1000000 loops, best of 3: 485 ns per loop
Run Code Online (Sandbox Code Playgroud)
看起来在上面的例子中,使用更高阶函数几乎慢了4倍.
所以我的问题是,何时是使用更高阶函数的好时机,因为上面的例子显然不是?
我一直在玩sqlite3,我得到一个sqlite3.OperationalError:接近"sweet":我的代码行的语法错误query_cursor.execute("INSERT INTO mcdonalds_menu VALUES(%d, %s, %f, %s, %d)" % (ids[num],names[num], price[num], descriptions[num], calories[num]))当我在3个单独的查询中输入值时,代码似乎工作,但我是试图通过使用for循环让我的代码更干.到目前为止的代码:
import sqlite3
filename = sqlite3.connect("McDonalds_Menu.db")
query_cursor = filename.cursor()
def create_table():
query_cursor.execute( "CREATE TABLE mcdonalds_menu (id INTEGER, name VARCHAR(20), price DECIMAL(3, 2), description TEXT, calories INTEGER)")
ids = range(1,4)
names = ["McFlurry", "Fillet-o-Fish", "McCafe"]
price = 1.50, 2.25, 0.99
descriptions = ["Delicious sweet icecream", "Best fish in the sea", "Freshly brewed Colombian coffee"]
calories = 220, 450, 75
def data_entry():
for num in …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 graphql-ruby 和 rails 为过滤器实现输入类型。
基本输入类型如下所示:
module Types
class BaseInputObject < GraphQL::Schema::InputObject
end
end
Run Code Online (Sandbox Code Playgroud)
我自己的输入类型看起来像:
module Types
class PhotoFilterType < Types::BaseInputObject
argument :attribution, String, "Filters by submitter", required: false
argument :country, String, "Filters by country", required: false
argument :year, Int, "Filters by year", required: false
end
end
Run Code Online (Sandbox Code Playgroud)
query_type 的方法标题如下所示:
field :filtered_photos, [Types::PhotoType], null: true do
argument :filters, Types::PhotoFilterType, 'filters for photo', required: true
end
Run Code Online (Sandbox Code Playgroud)
查询如下:
const FILTER_QUERY = gql`
query getFilteredPhotos($filters: PhotoFilterType!) {
filteredPhotos(filters: $filters) {
id
title
width
height …Run Code Online (Sandbox Code Playgroud) 所以我有一个使用以下代码制作的元组坐标向量:
vector<tuple<int, int>> coordinates;
for (int i = 0; i < 7; i++){
for (int j = 0; j < 6; j++){
coordinates.push_back(make_tuple(i, j));
}
}
Run Code Online (Sandbox Code Playgroud)
我试图用"x","o"或"."来填充董事会.以下内容:
void displayBoard(vector<tuple<int,int>>& board, vector<tuple<int,int>>& p1, vector<tuple<int,int>>& p2){ // prints out board
cout << " a b c d e f g\n"; // top row
for (int i = 1; i < 43; i++){
if (i % 7 == 0) {
if (find(p1.begin(), p1.end(), board[i])) cout << "| x |\n";
else if (find(p2.begin(), p2.end(), …Run Code Online (Sandbox Code Playgroud) python ×2
c++ ×1
graphql ×1
graphql-ruby ×1
profiling ×1
react-apollo ×1
sqlite ×1
tuples ×1
vector ×1