実践:異なるプログラミング言語、関数検出多属性のすべての合理的な具体的な実現.


Javaとerlangを例に挙げると、
①、java:オブジェクト向けでreturnが存在します.
②、erlang:関数プログラミングにreturnは存在しない
 
%%シミュレーションは、複数の入力情報が妥当かどうかを検出し、1つの不合理がある場合は返します.%例:UName,UEmail,UPass,USex,UMoney,UOwn.%%上記の説明の順序を検出の優先度とし、検出関数:checkを接頭辞として検出する属性名を付ける.
 
%%java:returnが存在し、returnを直接使用します.%%方法1:
regist(UName,UEmail,UPass,USex,UMoney,UOwn)



{



    if(!checkName(UName))

    {

        return ;

    }



    if(!checkEmail(UEmail))

    {

        return ;

    }



    if(!checkPass(UPass))

    {

        return ;

    }



    if(!checkSex(USex))

    {

        return ;

    }



    if(!checkMoney(UMoney))

    {

        return ;

    }



    if(!checkOwn(UOwn))

    {

        return ;

    }

}


 
%%はerlangにreturnが存在しません:%メソッド2、
regist(UName,UEmail,UPass,USex,UMoney,UOwn)->

	case checkName(UName)

	of 

		ok->

			

			case

				checkEmail(UEmail)

			of 

				ok->

					case checkPass(UPass)

					of					

					ok->

						case checkSex(USex)

						of

						ok->

							case 

							of

								ok->

									case checkMoney(UMoney)

									of

										ok->	

											case 

												checkOwn(UOwn)

											of

												ok->	

													ok;

												error-> 

													error 

											end

										;

										error-> error

									end

								;

								error-> 

									error

							end

						;

						error-> error

						end

					;

					error->error 

					end

				;

			error->

				error

			end

			;

		error->error

	end

.


 
%シナリオ3、
regist(UName,UEmail,UPass,USex,UMoney,UOwn)->

    NameResult = checkName(UName),%%    :0,1

    EmailResult =checkEmail(UEmail,NameResult),

    PassResult = checkPass(UPass,EmailResult),

    SexResult = checkSex(USex,PassResult),

    MoneyResult = checkMoney(UMoney,SexResult),

    checkOwn(UOwn,MoneyResult).

    

%%                ,             。

checkEmail(UEmail,1)->

    Result;

checkEmail(UEmail,NameResult)->

    NameResult;


 
%推測:シナリオ3はシナリオ2より遅い可能性があります.%決定:シナリオ3の可読性はシナリオ2.%をはるかに上回っています.欠陥:シナリオ3の関数はシナリオ2のパラメータより増加した.%%実践:方案二と方案三の実行可能性と効率を検査する必要がある.