現在の行を指定して、パスカルの三角形の次の行を返す関数を作成しました。
pascal_next_row([X],[X]).
pascal_next_row([H,H2|T],[A|B]):-
pascal_next_row([H2|T],B),
A is H + H2.
pascal(5,Row)
三角形のn 番目の行を見つけられるようにしたいですRow=[1,5,1,0,1,0,5,1]
。私はこれを持っています:
pascal(N,Row):-
pascalA(N,[1,0],Row).
pascalA(N,R,_Row):-
N > 0,
M is N-1,
next_row([0|R],NR),
pascalA(M,NR,NR).
明らかにRow
の前に見つかった最後のものである必要がありますn==0
。どうすれば返品できますか?is
キーワードを使用してみましRow is NR
たが、明らかに許可されていません。何か助けはありますか?
リストで使用しようとすると、次のようis
になります。
! Domain error in argument 2 of is/2
! expected expression, but found [1,4,6,4,1,0]
! goal: _23592586 is[1,4,6,4,1,0]