如何将这段代码从命令式编程更改为函数式编程?

问题描述 投票:0回答:1

def validate_cats(N, S):
    if N%2 == 0: 
        pass
    else:
        print("Error : Can only be even number only")
        exit()

    for i in range(0, N): 
        x = int(input())
        S.append(x)

    for i in S: 
        count = 0
        for j in S:
            if( i == j ):
                count+=1
            else:
                continue
        if( count != 2):
            print("Error : This cat doesn't have a couple with the same size or have more than 2 cats of the same size")
            exit()
        else:
            return True

def cage_cats(S):
    maxtemp = 0
    temp = list(set(S))
    for i in range(len(temp)-1):
        for j in range(len(S)-1):
            if temp[i] == S[j]:
                if S[j] == S[j+1]:
                    break
                else:
                    maxtemp = max(S[j], maxtemp)

    return maxtemp                 

N = int(input()) 
S = [] 
result = validate_cats(N, S) 
print("-------------") 
if result:
    print(cage_cats(S))
else:
    print("ERROR!!!")
    exit()


如何将此代码从命令式编程转换为函数式编程?我如何判断它是命令性的还是功能性的?

我想知道一种易于理解的区分命令式编程和函数式编程的方法。

python functional-programming
1个回答
0
投票

据我所知,您的代码已经使用了函数式编程。

命令式编程简单地定义为给计算机一组要遵循的指令。

函数式编程是指您向计算机提供一组函数并描述它如何使用它们,而不是向计算机提供明确的指令。这些函数本身是使用命令式编程和函数式编程的混合来定义的,这就是为什么命令式编程经常与声明式编程而不是函数式编程进行比较的原因。

根据这些定义,您的代码使用函数式编程 - 您定义了函数

validate_cats
cage_cats
,然后描述了您希望程序如何使用它们。如果您愿意,您可以查找命令式编程和函数式编程,以获得比我提供的更清晰的理解。希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.